0

私のWindowsマシンでコンボjython-zxJDBC-UCanAccessを動作させようとしています。私が得続けているので、一日中私を夢中にさせています

zxJDBC.DatabaseError (ドライバー [net.ucanaccess.jdbc.UcanaccessDriver] が見つかりません)および zxJDBC.DatabaseError (ドライバー [ucanaccess] が見つかりません)

私はGord Thompsonからのこのサンプル コードを私の詳細と共に使用していました。

from com.ziclix.python.sql import zxJDBC
#Or also import ucanaccess

jdbc_url = "jdbc:ucanaccess://Z:/Companies.accdb"
username = ""
password = ""
driver_class = "net.ucanaccess.jdbc.UcanaccessDriver"
#Or driver_class = "net.ucanaccess.jdbc.UcanloadDriver"

cnxn = zxJDBC.connect(jdbc_url, username, password, driver_class)
crsr = cnxn.cursor()
crsr.execute("SELECT * FROM tblSICs")
for row in crsr.fetchall():
    print row[0]
crsr.close()
cnxn.close()
  • Jython だけでも問題なく動作します。私は SikuliX IDE で使用しています
  • 「from ... import zxJDBC」はエラーなしで合格
  • UCanAccess は、MS Access データベースでコマンド ライン (console.bat) から正常に動作します。5 つの JAR はすべて CLASSPATH 変数に含まれています。

私が得られないのは、「driver_class」とは何ですか?. データベース固有のドライバーは、Jython/SikuliX が「.../ucanaccess-5.0.0.jar」が見られる CLASSPATH を調べることによって見つけられると思いました。

CLASSPATH は次のとおりです。

"c:\Users\User\AppData\Roaming\UCanAccess\lib\hsqldb-2.5.0.jar;c:\Users\User\AppData\Roaming\UCanAccess\lib\jackcess-3.0.1.jar;c:\Users\User\AppData\Roaming\UCanAccess\lib\commons-lang3-3.8.1.jar;c:\Users\User\AppData\Roaming\UCanAccess\lib\commons-logging
-1.2.jar;c:\Users\User\AppData\Roaming\UCanAccess\ucanaccess-5.0.0.jar"

SikuliX IDE がリソースを探す場所は次のとおりです。

D:\Drawer 3\Sikuli\Training\UCanAccess.sikuli Z:\test.sikuli C:\Users\User\AppData\Roaming\Sikulix\Lib\site-packages C:\Users\User\AppData\Roaming\Sikulix\ Lib C:\Users\User\AppData\Roaming\Sikulix\Extensions\Lib C:\Users\User\AppData\Roaming\Sikulix\Extensions\jython-standalone-2.7.2.jar\Lib クラスパス pyclasspath /

誰かが問題を見つけていますか?

4

1 に答える 1

0

問題は、CLASSPATH 変数を評価できない SikuliX 2.0.4 の特別なひねりであることが判明しました。ここでの回避策/JARの場所を知るためのSiluliXの方法:

2 つのソリューション:

ソリューション A

SikuliX IDE はフォルダー <C:\Users\User\AppData\Roaming\Sikulix\Extensions> を調べます。関連する 5 つの JAR ファイルはすべて、そのフォルダーに配置する必要があります (デプロイメント パックのような「lib」サブフォルダーはありません)。

  • ucanaccess-5.0.0.jar

  • commons-lang3-3.8.1.jar

  • commons-logging-1.2.jar

  • hsqldb-2.5.0.jar

  • jackcess-3.0.1.jar

SikuliX->Tools->Extensions... を参照して、見つかった拡張 JAR を確認します。

ソリューション B

必要な JAR を元の展開フォルダーに残し、そのパスを「特別なファイル」「C:\Users\User\AppData\Roaming\Sikulix\Extensions\extensions.txt」に次のように追加します。

  • ucanaccess = C:/Users/User/AppData/Roaming/UCanAccess/ucanaccess-5.0.0.jar

  • C:/Users/User/AppData/Roaming/UCanAccess/lib/commons-lang3-3.8.1.jar

  • C:/Users/User/AppData/Roaming/UCanAccess/lib/commons-logging-1.2.jar

  • C:/Users/User/AppData/Roaming/UCanAccess/lib/hsqldb-2.5.0.jar

  • C:/Users/User/AppData/Roaming/UCanAccess/lib/jackcess-3.0.1.jar

これは、回避策として、CLASSPATH 変数の代わりに評価されます。

ご協力いただきありがとうございます!

于 2020-10-01T14:20:37.957 に答える