私は次のPythonコードを持っています。これはテキストファイルを1行ずつ読み込み、各行の文字xからyを変数 "Contract"として取ります。Python PYODBC - 前のSQLはクエリではありません
import os
import pyodbc
cnxn = pyodbc.connect(r'DRIVER={SQL Server};CENSORED;Trusted_Connection=yes;')
cursor = cnxn.cursor()
claimsfile = open('claims.txt','r')
for line in claimsfile:
#ldata = claimsfile.readline()
contract = line[18:26]
print(contract)
cursor.execute("USE calms SELECT XREF_PLAN_CODE FROM calms_schema.APP_QUOTE WHERE APPLICATION_ID = "+str(contract))
print(cursor.fetchall())
ラインcursor.fetchallを(含む)、次のエラーが返されます。
Programming Error: Previous SQL was not a query.
問合せは、SSMSで実行され、変数の結果の実際の値とSTR(契約)を置き換えます期待どおりに返されます。
データに基づいて、クエリはNVARCHAR(4)としてフォーマットされた結果として1つの値を返します。
ほとんどの他の例にはループの前に宣言された変数があり、提案された解決策はNO COUNTを設定することですが、これは私の問題には当てはまりませんので少し失われます。
P.S.私はまた、それが成功せずに問題を引き起こしていた場合に備えて、ファイルを反復処理するためにループなしで独自のスタンドアロンファイルにクエリを配置しました。
あなたは、 –
グレート:)おかげで絶対に正しいです!これが助けられた場合は、解答を受け入れるようにしてください。 – Parfait