2012-10-09 70 views
3

我正在尝试使用Jackcess在Access .mdb中创建ODBC链接表。如何使用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”,但链接的类型是“Access Link”。 我期待在test.mdb中创建“ODBC链接”表。

有人能告诉我正确的方法来完成这个吗?

+0

有时想办法的最简单的方法是这样是去的方向相反。使用MS Access创建一个ODBC链接,然后使用Jackcess查看连接字符串。那么你可以模仿你找到的语法。 – jtahlborn

+0

感谢您的建议,我尝试过,但它没有工作。 – user1731576

回答

0

看来Jackcess中的.createLinkedTable()方法当前只能创建到另一个Access数据库中的表的链接。我只是Jackcess 2.0.1测试这一点,下面的代码成功地创建一个名为访问链接的表[客户]指向另一个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]认为看起来像一个链接到另一个数据库(而不是预期的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); 
相关问题