3

Jackcess を使用して Access .mdb に ODBC リンク テーブルを作成しようとしています。

Final String connStr = "ODBC;DRIVER={Sybase ASE ODBC Driver};NA=dbhostname,port;DB=myDbName;UID=myID;PWD=myPass;FILEDSN=path//myDSN.dsn";

Database mdb =Database.create(new File("./test.mdb");
mdb.createLinkedTable("testLinkTable",connStr, "targetTableName");

test.mdb を開くと、「testLinkTable」が表示されますが、リンクの種類は「アクセス リンク」です。test.mdb に「ODBC リンク」テーブルを作成する予定です。

誰かがこれを達成する正しい方法を親切に教えてくれますか?

4

1 に答える 1

0

Jackcessの.createLinkedTable()メソッドは現在、別の Access データベースのテーブルへのリンクしか作成できないようです。これを Jackcess 2.0.1 でテストしたところ、次のコードで別の Access データベースを指す [Clients] という名前の Access リンク テーブルが正常に作成されました。

Database database = DatabaseBuilder.open(new File("C:\\__tmp\\jTest\\linkTest.accdb"));
String linkedTableLocalName = "Clients";
String linkedTableSource = "C:\\Users\\Public\\Database1.accdb";
String linkedTableRemoteName = "Clients";
database.createLinkedTable(linkedTableLocalName, linkedTableSource, linkedTableRemoteName);

ただし、このコードは [dbo_Addresses] という名前のリンク テーブルを作成しましたが、これは別の Access データベースへのリンクのように見え(意図した ODBC リンク テーブルではありません)、機能しませんでした。

Database database = DatabaseBuilder.open(new File("C:\\__tmp\\jTest\\linkTest.accdb"));
String linkedTableLocalName = "dbo_Addresses"; 
String linkedTableSource = "ODBC;DSN=myDb;Trusted_Connection=Yes;APP=Microsoft Office 2010;DATABASE=myDb;";  
String linkedTableRemoteName = "dbo.Addresses";
database.createLinkedTable(linkedTableLocalName, linkedTableSource, linkedTableRemoteName);
于 2013-11-03T12:33:56.313 に答える