前提・実現したいこと
ラズベリーパイ3から同一LAN内のWindows7PCにあるSqlServer2014のデータベースに接続し
DBの参照・更新を行いたい。
やり方が全くわからないため、インターネットで検索した結果
Pythonを使うものと思い、サンプルコードを設定してみたがエラーが出ており、接続できない。
Pythonは3.5.3である。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ Traceback (most recent call last): File "src\pymssql.pyx", line 636, in pymssql.connect File "src\_mssql.pyx", line 1957, in _mssql.connect File "src\_mssql.pyx", line 677, in _mssql.MSSQLConnection.__init__ _mssql.MSSQLDriverException: Connection to the database failed for an unknown reason. During handling of the adove exception, another exception occurred: Traceback (most recent call last): File "/home/pi.test,py", line 4, in <module> conn = pymssql.connect('XXX-PC\SQLEXPRESS', 'userid', 'passWd', 'DbName') File "src/pymssql.pyx", line 645, in pymssql.connect pymssql.interfaceError: Connection to the database failed for an unknown reason.
該当のソースコード
Python3.5.3
1ソースコード 2from os import getenv 3import pymssql 4 5conn = pymssql.connect('XXX-PC\SQLEXPRESS', 'userid', 'passWd', 'DbName') 6cursor = conn.cursor() 7 8cursor.execute("""SELECT * FROM dbo.TestTable""") 9row = cursor.fetchone() 10 11while row: 12 printf("%s, %s" % (row[1], row[2])) 13 row = cursor.fetchone() 14conn.close()
Windows7 sqlserver2014設定
SqlServer
1[構成] 2XXX-PC\SQLEXPRESS 3 ・データベース 4 MDBS 5 テーブル 6 dbo.TestTable 7[テーブル] all null許容 8datetime, 9nvarchar(MAX) 10nvarchar(MAX) 11varbinary(MAX)
試したこと
import pymssql でエラーなどは特になし
$ sudo apt-get install python3-pip
$ sudo apt-get install freetds-dev -y
$ pip3 install pymssql
を行い、インストール済み
補足情報(FW/ツールのバージョンなど)
pymssql がPyhton3.xに対応していない疑惑が調査して浮上。
代替案を模索中です。
追記情報 2019/08/03
参考サイトを参考に以下の用に設定をしたところ、エラーがでて接続できません。
[ISQL]ERROR: Could not SQLConnect
ファイル:/etc/freetds/freetds.conf [SqlMy] ※適当な名前 host = 192.168.0.2 ※SQLServer 2014がインストールされている端末のIP port = 1433(デフォルトから変更なし) tds version = 8.0 client charset = UTF-8
ファイル:/etc/odbcinst.ini [FreeTDS] Description = FreeTDS Driver Driver = /usr/lib/arm-linux-gnueabihf/odbc/libtdsodbc.so Setup = /usr/lib/arm-linux-gnueabihf/odbc/libtdsodbc.so
ファイル:/etc/odbc.ini [sqlserver] Servername = SqlMy Driver = FreeTDS Database = MDBS
SQLサーバーの構成は以下の通りです。(上記にも記載あり)
SqlServer
1[構成] 2XXX-PC\SQLEXPRESS 3 ・データベース 4 MDBS 5 テーブル 6 dbo.TestTable 7[テーブル] all null許容 8datetime, 9nvarchar(MAX) 10nvarchar(MAX) 11varbinary(MAX)
本件Python3.xでは実装が困難と考えましたので一旦クローズしたいと思います。

下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2019/07/23 05:35
2019/08/02 22:33