我正在使用pyODBC連接到SQL Server 2005 Express數據庫。我在SQLServer express中創建了一個存儲過程,該存儲過程需要2個字符串參數,例如stored_proc(inpu1,input2),這些參數的類型爲datetime。我已經使用管理工作室測試了存儲過程,它確實返回了合適的結果。但是,當我嘗試從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,並且傾向於首先使用日期時間格式,如果是這樣的話?我已經修整strptime,但即使這不是成功了,雖然我可能會使用它錯了
我已經打了一下,發現local_cursor.execute(」 叫dbo.GetAlarmEventHistoryFrequency_TimeRange(?,?) }「,[dt_start],[dt_end]) 基本上,語法似乎是」調用stored_proc(?),[ PARAMS。現在我認爲是這樣,但是當我運行時,我在Python.exe中得到了未處理的Win32異常。有沒有人使用python 2.7在windows上使用pyodBC進行實驗? – user595985