2012-10-09 41 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); 
相關問題