我一直在尝试使用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"));
}
}
}
请帮忙吗?
答案 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表一起使用。