2016-07-14 16 views
2

Accessデータベースからテーブルと列を抽出する簡単なJavaプログラムを作成しようとしています。私は次のことを持っているJackcessの料理を使用する:私はそれを実行しようとすると、"指定されたネットワーク名は使用できなくなりました" Jackcess

 String sourceDatabase = "C:\\temp\\test1.mdb"; 
     Database accessDB = DatabaseBuilder.open(new File(sourceDatabase)); 

     // Loop through the tables 
     Set<String> accessTables = accessDB.getTableNames(); 
     for (String currentTable: accessTables) { 
      System.out.println("Reading table " + currentTable + "..."); 

      Table table = accessDB.getTable(currentTable); // This is line 51 where the stacktrace occurs 

      // Loop through columns in current table 
      for(Column column : table.getColumns()) { 
       String columnName = column.getName(); 

       Integer colType = column.getSQLType(); 


       Boolean isAutoNumber = column.isAutoNumber(); 

       System.out.println("\t" + columnName + " \t" + sqlTypeToText(colType) + "\t" + isAutoNumber); 

      } 

      System.out.println(""); 


     } 
     accessDB.close(); 

は、しかし、私は、スタックトレースでは、次の出力を得る:

Reading table _OracletblColumn... 
    colid 8 false 
    tblid 8 false 
    colname  12 false 
    dbid 8 false 

Reading table _OracletblDatabase... 
    dbid 8 false 
    dbname 12 false 
    dbpathname 12 false 

Reading table _OracletblTable... 
    tblid 8 false 
    dbid 8 false 
    tblname  12 false 

Reading table DICT_ACCOM... 
java.io.IOException: The specified network name is no longer available 
    at sun.nio.ch.FileDispatcher.pread0(Native Method) 
    at sun.nio.ch.FileDispatcher.pread(FileDispatcher.java:35) 
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:195) 
    at sun.nio.ch.IOUtil.read(IOUtil.java:171) 
    at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:612) 
    at com.healthmarketscience.jackcess.impl.PageChannel.readPage(PageChannel.java:211) 
    at com.healthmarketscience.jackcess.impl.TempPageHolder.setPage(TempPageHolder.java:86) 
    at com.healthmarketscience.jackcess.impl.TempPageHolder.setPage(TempPageHolder.java:74) 
    at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.<init>(UsageMap.java:693) 
    at com.healthmarketscience.jackcess.impl.UsageMap$ReferenceHandler.<init>(UsageMap.java:673) 
    at com.healthmarketscience.jackcess.impl.UsageMap.initHandler(UsageMap.java:146) 
    at com.healthmarketscience.jackcess.impl.UsageMap.read(UsageMap.java:136) 
    at com.healthmarketscience.jackcess.impl.UsageMap.read(UsageMap.java:108) 
    at com.healthmarketscience.jackcess.impl.TableImpl.<init>(TableImpl.java:245) 
    at com.healthmarketscience.jackcess.impl.DatabaseImpl.readTable(DatabaseImpl.java:1538) 
    at com.healthmarketscience.jackcess.impl.DatabaseImpl.readSystemCatalog(DatabaseImpl.java:849) 
    at com.healthmarketscience.jackcess.impl.DatabaseImpl.<init>(DatabaseImpl.java:526) 
    at com.healthmarketscience.jackcess.impl.DatabaseImpl.open(DatabaseImpl.java:393) 
    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:1003) 
    at com.healthmarketscience.jackcess.impl.DatabaseImpl.getTable(DatabaseImpl.java:971) 
    at com.healthmarketscience.jackcess.impl.DatabaseImpl.getTable(DatabaseImpl.java:929) 
    at com.healthmarketscience.jackcess.impl.DatabaseImpl.getTable(DatabaseImpl.java:82) 
    at com.ralph.sql.test1.migrateTableDefs(test1.java:51) 
    at com.ralph.sql.test1.main(test1.java:24) 

私はグーグルで試してみたが、見つかりませんでしたJackcessと同じ問題を抱えている人は、何が間違っていますか?

答えて

1

さらに調査したところ、上記のコードは誤りではないことが判明しました。

私はAccessデータベースを別のフォルダに移動すると、上記のコードはスタックトレーシングなしで完全に機能します。私の最初の考えはファイルのアクセス許可だった、私は自分のユーザーがデータベース(とC:\ tempフォルダ)への読み取り/書き込みアクセス権を持っていることを確認した。

私の企業ウイルススキャン(McAfee)は、それを壊していたアクセススキャンで何らかの処理を行っていたことが判明しました。ウィルススキャンを無効にすることは許されていないので、ウィルススキャンでアクセスできるように、すべての作業をC:\ users \ usernameのフォルダに移動します。ローカルの管理者権限を持つためには、それは役に立たなかった。

関連する問題