私はpyODBCを使用してSQL Server 2005 Expressデータベースに接続しています。私はSQLServer Expressの中にstored_proc(inpu1、input2)という2つの文字列パラメータを持つストアドプロシージャを作成しました。これらのパラメータはdatetime型です。私は管理スタジオを使用して格納されたprocをテストし、適切な結果を返します。しかし、私はpython(私はEclipseを使用している)からストアドプロシージャを呼び出すときにエラーが発生します。PyODBCを使用してストアドプロシージャにパラメータを渡す
pyodbc.DataError: ('22018', '[22018] [Microsoft][SQL Native Client]Invalid character value for cast specification (0) (SQLExecDirectW)')2/9/2011 12:00:03 2/9/2011 12:20:03
次のように私が呼んでいる機能は次のとおりです。
def GetAlarmFrequencyTime(tstart,tend):
print tstart, tend
arguments=(tstart,tend)
local_cursor=conn.cursor()
local_cursor.execute("{call dbo.GetAlarmEventHistoryFrequency_TimeRange(tstart,tend)}")
resultset_rows=local_cursor.fetchall()
print "There are" , len(resultset_rows), "records"
for single_row in resultset_rows:
print "|" ,single_row[0], "|" ,single_row[1],"|"
local_cursor.close()
トラブルを引き起こしている行が
local_cursor.execute("{call dbo.GetAlarmEventHistoryFrequency_TimeRange(tstart,tend)}")
で誰も私が私がに複数のパラメータを渡すことができる方法を理解するのに役立つことができますpyODBCを使用して呼び出されるストアドプロシージャ tstartを変換する必要がありますか?そうであれば、まずdatetime形式になりますか?私はのstrptimeを揃えているが、私は
local_cursor.execute("{call dbo.GetAlarmEventHistoryFrequency_TimeRange(tstart,tend)}")
をクラッシュすることなく動作するように、私はついにそれを得た間違った
は、私は少しプレーしてきたとlocal_cursor.executeを見つけました" } "、[dt_start]、[dt_end]) 基本的に構文は" stored_proc(?)、 params]。今はこれだと思いますが、Python.exeでUnhandled Win32例外が発生しました。 Python 2.7を使用して誰かがpyODBC with experirenceを持っていますか? – user595985