jdbc / Jackcess / Ucanaccess - 无法连接到链接到sharepoint list

时间:2016-12-29 21:06:52

标签: jdbc ucanaccess jackcess

我一直在尝试使用jackcess / ucanaccess连接到本地计算机上的访问数据库。此数据库与sharepoint列表链接。连接发生了,我可以从表中读取。当我删除其中一个访问表的sharepoint列表链接并再次将其与sharepoint列表链接时,我收到以下错误:

  

TestJdbc.main()[常量,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,名称自动更正保存故障,叔个人-状态,叔角色的系统,TABLE_BackgroundAttachments,TABLE_Benefits, TABLE_Capabilities,TABLE_DepartmentImpact,TABLE_LogHistory,TABLE_ProjectAttachments,TABLE_Requirements,TABLE_Terminology,TABLE_XRefs,UserInfo]   线程中的异常&#34; main&#34; java.io.FileNotFoundException:给定文件不存在:https:\ workspace.web.att.com \ sites \ ISDE \ SmartIA; LIST = {4131DABC-4E9F-4F75-95DC-CE26A0F63EC3}; VIEW =; RetrieveIds = Yes < /强>       在com.healthmarketscience.jackcess.impl.DatabaseImpl.open(DatabaseImpl.java:365)       在com.healthmarketscience.jackcess.DatabaseBuilder.open(DatabaseBuilder.java:252)       在com.healthmarketscience.jackcess.DatabaseBuilder.open(DatabaseBuilder.java:291)       在com.healthmarketscience.jackcess.util.LinkResolver $ 1.resolveLinkedDatabase(LinkResolver.java:42)       在com.healthmarketscience.jackcess.impl.DatabaseImpl.getTable(DatabaseImpl.java:984)       在com.healthmarketscience.jackcess.impl.DatabaseImpl.getTable(DatabaseImpl.java:928)       在com.healthmarketscience.jackcess.impl.DatabaseImpl.getTable(DatabaseImpl.java:81)       在com.attprism.rest.common.TestJdbc.main(TestJdbc.java:54)   14:17:24.843错误:[PacketDispatcher.cpp:154]运行:执行命令中的异常:TransportException [510/201]没有与调试器的开放连接

我的代码看起来像这样

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 个答案:

答案 0 :(得分:1)

目前,UCanAccess只能与&#34; native&#34;访问表,即实际存储在.accdb或.mdb文件中的表(或.accde,.mde等相关变体)。 UCanAccess可以在本机链接表上运行(链接到存储在单独的.accdb / .mdb文件中的Access表),但它不能用于ODBC链接表(指向存储在SQL Server,MySQL中的表的链接......)和它显然无法与链接到SharePoint的表一起使用。

您可能希望使用System.Data.Odbc在C#中进行一些测试,以查看它是否可以与SharePoint链接表一起使用。我还没有尝试过,但我知道使用System.Data.Odbc的.NET应用程序能够在SQL Server上使用ODBC链接表,所以也许它也可以与SharePoint表一起使用。