2010-02-18 3 views
2

임베디드 Advantage 데이터베이스 서버를 사용하여 프로그램에서 읽은 일부 데이터로 작업하고 있습니다. 이 프로그램은 저에게 작성된 것이 아니며 필요한 모든 기능을 가지고 있지 않습니다. 이 데이터를 다른 형식으로 변환하여 MySQL과 같이보다 자유롭게 작업 할 수 있기를 바랍니다.Sybase .ADT 파일을 SQL로 자동 변환

저는 Sybase가 단일 로컬 데이터베이스를 SQL로 변환하는 도구를 제공한다는 것을 알고 있습니다. 매우 유용합니다. 이 프로그램의 작성자가 사용자가 작업하는 모든 새 문서에 대해 새 데이터베이스를 포함하는 새 폴더를 만드는 것을 제외하고는 정상적으로 작동합니다. 따라서 각각 100 개의 .ADT 파일이있는 100 개의 개별 데이터베이스 폴더가있을 수 있습니다.

저는 .ADT 파일과 스키마를 기본적으로 다른 것으로 변환하는 프로세스를 자동화하는 방법을 찾고 있습니다. 나는 과거에 작동해야했던 다른 모든 포맷들에 대해 더 많은 행운을 겪었습니다. 인덱스, 뷰 또는 그 중 어떤 것도 필요하지 않습니다. 테이블의 다른 형식으로 내보내기 만하면 일부 데이터를 처리 할 수 ​​있습니다.

그래서 여기서는 하나의 Advantage Database Server 로컬 데이터베이스를 SQL로 자동 변환하는 방법을 찾고 있습니다. 그래서 데이터베이스를 나타내는 .ADT 파일 폴더가 있습니다.

Ruby와 Python을 태그에 포함 시켰습니다.이 스크립트 언어 중 하나를 사용하는 것이 이상적 일 수 있기 때문입니다. 그러나 모든 솔루션이 훌륭 할 것입니다.

현재 제가 사용하고있는 경로는 ODBC 드라이버로 작업하려고하지만 문제가있어 더 쉬운 해결책이 있기를 바랍니다.

감사합니다.

체이스 회색

답변

2

일부 묻고 검색 한 후에 내가 찾고있는 것과 같은 것이 없다고 생각됩니다.

오늘 Ruby DBF 젬을 기반으로 뭔가를 정리해 보았습니다. 나는 끝나지 않았지만 그것이 원하는대로 작동합니다. 테스트를 끝내고 SQL 등을 내보내는 작업을 추가해야 할 것입니다.하지만 다른 사람이이 질문을 찾고 아무 것도 설치하지 않고 .ADT 파일에서 정보를 검색 할 수 있기를 바랍니다.

여기는 프로젝트에 대한 링크입니다. 아마 밤늦게까지 진행될 것입니다. 지금은 꽤 미미하지만 시간이 지남에 따라 추가 할 것입니다. http://chase.ratchetsoftware.com/2010/02/reading-advantage-database-server-files-adt-in-ruby/

http://github.com/chasemgray/Ruby-ADT

지금 데이터 출력을 얻는 것은이처럼 간단해야한다.당신의 도움에 대한

require 'adt' 

table = ADT::Table.new("test.adt") 

table.each do |record| 
    puts record.name 
    puts record.email 
end 

감사합니다,

체이스 회색

2

장점은 기존 ADT 형식의 테이블에 액세스하는 데 사용할 수있는 DBI (펄) 드라이버가 있습니다. JDBC 및 OLE DB 드라이버도 있습니다. 모두보기 http://devzone.advantagedatabase.com/dz/content.aspx?key=20&Release=13

링크는 버전 9.1 드라이버입니다. 실행중인 Advantage 서버와 동등하거나 그 이상인 드라이버를 가져오고 싶을 것입니다 (클라이언트가 Advantage 로컬 서버를 사용하지 않는 한 상관 없습니다).

+0

는의 난 그냥 하나의 테이블을 나타내는 하나의 .ADT 파일이 있다고 가정 해 봅시다. 변환하거나 행을 추출하는 쉬운 방법이 있습니까? –

+1

테이블을 다양한 형식으로 내보내거나 변환 할 수있는 Advantage Data Architect (ARC) 유틸리티가 있습니다. Advantage Developer Zone에서 다운로드 할 수 있습니다. http://devzone.advantagedatabase.com/ ADS 서버가있는 ARC 버전을 다운로드하거나 ARC에 포함 된 로컬 서버 DLL을 사용하여 로컬로 테이블을 열어 변환. – Joshery