2016-12-29 77 views
0

我一直在嘗試連接到使用jackcess/ucanaccess訪問本地計算機上的數據庫。這個數據庫與Sharepoint列表鏈接。連接發生,我可以從表中讀取。當我刪除鏈接到SharePoint列表的訪問表中的一個,並與SharePoint列表再次連接它,我得到以下錯誤:jdbc/Jackcess/Ucanaccess - 無法連接到鏈接到共享點列表的訪問表

TestJdbc.main()[CONSTANTS, f_0194596E3DC6402283A012D0661E7517_Attachments, f_41905A7F89E440EDBFA0B6B30C57EE68_CDAttachment, f_431F6C05710944EEA2F443EAC1A43A10_JOIN_XRef2Capability, f_6030D9CC0C874CF5A31AB134BBF1A10E_BackgroundAttachment, f_7EA55A8F5B1141E68CEECFD2DB672397_ProjectAttachment, LUT_Domain, LUT_Requirement_Types, LUT_XRef_Types, MASTER_ePlanProject, Name AutoCorrect Save Failures, t-Individual-Status, t-Role-System, TABLE_BackgroundAttachments, TABLE_Benefits, TABLE_Capabilities, TABLE_DepartmentImpact, TABLE_LogHistory, TABLE_ProjectAttachments, TABLE_Requirements, TABLE_Terminology, TABLE_XRefs, UserInfo] Exception in thread "main" java.io.FileNotFoundException: given file does not exist: https:\workspace.web.att.com\sites\ISDE\SmartIA;LIST={4131DABC-4E9F-4F75-95DC-CE26A0F63EC3};VIEW=;RetrieveIds=Yes at com.healthmarketscience.jackcess.impl.DatabaseImpl.open(DatabaseImpl.java:365) at com.healthmarketscience.jackcess.DatabaseBuilder.open(DatabaseBuilder.java:252) at com.healthmarketscience.jackcess.DatabaseBuilder.open(DatabaseBuilder.java:291) at com.healthmarketscience.jackcess.util.LinkResolver$1.resolveLinkedDatabase(LinkResolver.java:42) at com.healthmarketscience.jackcess.impl.DatabaseImpl.getTable(DatabaseImpl.java:984) at com.healthmarketscience.jackcess.impl.DatabaseImpl.getTable(DatabaseImpl.java:928) at com.healthmarketscience.jackcess.impl.DatabaseImpl.getTable(DatabaseImpl.java:81) at com.attprism.rest.common.TestJdbc.main(TestJdbc.java:54) 14:17:24.843 ERROR: [PacketDispatcher.cpp:154] Run: Exception in executing command: TransportException [510/201] there isn't an open connection to a debugger

我的代碼看起來像這樣

package com.attprism.rest.common; 

import java.io.File; 
import java.io.IOException; 
import java.sql.SQLException; 
import java.util.Set; 

import com.healthmarketscience.jackcess.Database; 
import com.healthmarketscience.jackcess.DatabaseBuilder; 
import com.healthmarketscience.jackcess.Row; 
import com.healthmarketscience.jackcess.Table; 

public class TestJdbc { 

    public static void main(String[] args) throws IOException, SQLException, 
      ClassNotFoundException { 

     Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); 
     Database db = DatabaseBuilder.open(new File(
       "C://Users//sm501y//Desktop//SmartIA_ODBC.accdb")); 
     Set<String> tables = db.getTableNames(); 
     System.out.println("TestJdbc.main()" + tables); 
     Table table = db.getTable("CONSTANTS"); 
     for (Row row : table) { 
      System.out 
        .println("Column 'a' has value: " + row.get("Project_ID")); 
     } 
    } 
} 

任何幫助,請?

回答

1

目前,UCanAccess只能與「原生」Access表一起工作,即實際存儲在.accdb或.mdb文件(或相關變體,如.accde,.mde等)中的表。 UCanAccess可以在本機鏈接表上操作(鏈接到存儲在單獨的.accdb/.mdb文件中的Access表),但它不能與ODBC鏈接表(指向存儲在SQL Server,MySQL等中的表的鏈接)和它顯然無法與鏈接到SharePoint的表一起使用。

您可能希望在C#中使用System.Data.Odbc進行一些測試,以查看它是否可以與SharePoint鏈接表一起使用。我還沒有嘗試過,但我確實知道使用System.Data.Odbc的.NET應用程序能夠使用SQL Server上的ODBC鏈接表,所以也許它可能也適用於SharePoint表。

+0

感謝您的回覆! – Sameer

+0

我們的應用程序託管在linux/jboss應用程序服務器上,我必須連接到鏈接到共享點列表的訪問表,而不使用odbc DS。我正在尋找一些像ucanaccess這樣的圖書館,你可以建議其他的apis嗎? – Sameer