2016-11-12 6 views
0

pypyodbcを使用してSQL Serverデータベースからデータを抽出しようとしています。 しかし、私はpypyodbc:問題

myCursor.execute(SQLCommand,values) 

を使用してSELECTステートメントを構築しようとすると、それは私のコードの区切りを表示されます誰もが問題を発見し、正しい方向に私を指すことができますか?

import pypyodbc 
try: 
    myConnection = pypyodbc.connect('Driver={SQL Server};' 
            'Server=THINKPAD\STEVE_DEVELOPER;' 
            'Database=PythonTest;' 
            'uid=sa; pwd=passwordCC') 
    myCursor = myConnection.cursor() 
    print("Connection Made")  
    SQLCommand =("SELECT First_Name, Date FROM [PythonTest].[dbo].[Names] WHERE First_Name =?") 
    values = ['Mike'] 
    print("SQL command elements Created") 
#After this is where it falls over 
    myCursor.execute(SQLCommand,values) 
    print("SQL statement constructed ") 
    results = myCursor.fetchone() 
    print(results[0]) 
    print("Sucessfully retreive record") 
    myconnection.close() 
except: 
    print('Record NOT sucessfully retreived') 

乾杯 Pythonでスティーブ

+0

'try' ...' except'を取り出し、トレースバックを表示します。 – cco

+0

OK - varchar = =演算子との互換性がありません。 =を「LIKE」に置き換えて並べ替えました。トレースバックを表示するために "try/except"を削除していただきありがとうございます。初心者学習: – Steve

答えて

1

、例外はあなたの友達です。トレースバックは何がうまくいかなかったかを示し、通常は(うまくいけば)例外が何がうまくいかなかったかを教えてくれます。 except:を使用して、すべての例外を抑制

は(ほぼ)常に悪い考えです - あなたは、例外をキャッチした場合、あなたがキャッチし、それに対処する方法を期待しているかを知る必要があります。もしそうでなければ、通常は次のハンドラに移動させたい。ハンドラはそれを処理するか、トレースバック(またはその両方)を表示する。

+0

ありがとうございました - 完全に論理的な一度それを指摘した。とても有難い! – Steve

関連する問題