LoginSignup
0
0

More than 3 years have passed since last update.

pyside2付属qsqlpsql.dll windows10 64bit での使用

Posted at
1 / 2

備考録です。
Qtが提供する(Community版windows用ではそもそもdll形式では提供が無い。今もそうでしょうか。) qsqlpsql.dllをWindowsで利用する事一度も成功しませんでした。(そういうスキルの者だとご理解下さい。)
今回、PySide2を導入したところ、
AppData/Local/Programs/Python/Python37/Lib/site-packages/PySide2/plugins/sqldrivers
内に
qsqlite.dll
qsqlodbc.dll
qsqlpsql.dll
があるのを見つけてこれは!使えるのではと。
wslの file qsqlpsql.dll で
qsqlpsql.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows
で64bit版である(らしい)ことを確認して、postgresql.orgよりpsqlodbc_11_01_0000-x64.zip
をダウンロード。面倒だし全く理解できないので、解凍してできた全てのファイルを pythonスクリプトと同一ファルダーにコピー、加えて sqldrivers内のqsqlpsql.dllもコピーして、

test.py

import sys
from PySide2.QtSql import QSqlDatabase


print (sys.path)

db = QSqlDatabase.addDatabase("QPSQL")
db.setHostName("hostname")
db.setDatabaseName("dbname")
db.setUserName("username")
db.setPassword("password")
print(  db.open() )

結果
WARNING:  nonstandard use of \\ in a string literal
LINE 1: SELECT '\\' x
               ^
HINT:  Use the escape string syntax for backslashes, e.g., E'\\'.
True

WARNINGはQtのpsqldriverが接続する際、サーバー側が必ず出力するものなのでむしろ歓迎。
最終行 True ですから接続成功の模様。
なぜ、スクリプトと同一フォルダーで無いと失敗するのかなど不明ですが、なにより接続する事が大事なのでそこはいいとして。

psycopg2 で、mac windows 双方で接続テストできていたのですが、これでQtの中でdb接続まで完結できるかもしれません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0