私はpyodbc
を使用してデータベース接続を管理しています。 I OSI PIのデータベースに接続し、このエラーを受信しようとしています:どのようにしてOSI PIにPython 2.6を接続できますか?
pyodbc.Error: ('IM002', "[IM002] [OSI][PI ODBC][PI]PI-API Error <pilg_getdefserverinfo> 0 (0) (SQLDriverConnectW); [01000] [Microsoft][ODBC Driver Manager] The driver doesn't support the version of ODBC behavior that the application requested (see SQLSetEnvAttr). (0)")
ベンダーと話した後、私はこの応答を得た: Looks like pyodbc is written against ODBC 3.x. The OSI PI ODBC driver is using ODBC 2.0. The python ODBC driver manager will convert most ODBC 3 calls on the fly to ODBC 2 ones. Anything added to 3, however, will obviously fail. You would need to find some way to make sure that your only using 2.0 compliant ODBC calls. Currently their is not a PI ODBC driver that is compliant with ODBC 3.0.
私はと私のコードはかなり単純ですこの時点で接続しようとしています:
import pyodbc
constr = 'DRIVER={PI-ODBC};SERVER=myserver;UID=MY_UID'
pyodbc.pooling=False
conn = pyodbc.connect(constr) # Error at this line
conn.close()
誰かがOSI PIにpythonを接続しましたか?もしそうなら、どうしたのですか?そうではなく、まだOSIデータベースのデータを使用していた場合、どのようにしてそのデータにアクセスしましたか?
PIODBCに接続する際に 'R'' RODBC'パッケージを使用する際に問題がありました。症状は、すべてのクエリがゼロ行を返していたことです。解決策は、PI ODBCドライバが行数を混乱させていたため、一度に1行( 'rows_at_time = 1')と(' believeNRows = FALSE')をフェッチするように 'RODBC'を設定することでした。 http://stackoverflow.com/q/7425100/176995 –