2016-12-29 73 views
0

jackcess/ucanaccessを使用してローカルマシンのデータベースにアクセスしようとしています。このデータベースは、共有リストにリンクされています。接続が発生し、テーブルから読み取ることができます。私はアクセスのテーブルのいずれかの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にリンクされたテーブルでは機能しません。

System.Data.Odbcを使用してC#で少しテストして、SharePointリンクテーブルで動作するかどうかを確認したい場合があります。私はそれを試したことはありませんが、System.Data.Odbcを使用している.NETアプリケーションがSQL Server上のODBCリンクテーブルで動作できることを知っています。したがって、おそらくSharePointテーブルでも動作する可能性があります。

+0

返信いただきありがとうございます! – Sameer

+0

私たちのアプリケーションはlinux/jbossアプリケーションサーバー上でホストされており、odbc DSなしで共有ポイントリストにリンクされたアクセステーブルに接続する必要があります。私はucanaccessのようないくつかのライブラリ、あなたが示唆することができる他のapisを探していますか? – Sameer

関連する問題