Передача параметров хранимым процедурам с помощью PyODBC

Я использую pyODBC для подключения к экспресс-базе данных SQL Server 2005. Я создал хранимую процедуру в SQLServer express, которая принимает 2 строковых параметра, например, stored_proc (inpu1, input2), эти параметры имеют тип datetime. Я проверил хранимую процедуру с помощью студии управления и вернул соответствующий результат. Однако, когда я пытаюсь вызвать хранимую процедуру из python (я использую Eclipse), я получаю ошибку.

pyodbc.DataError: ('22018', '[22018] [Microsoft] [собственный клиент SQL] Недопустимое значение символа для спецификации литья (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, но даже это не удалось, хотя я могу использовать его неправильно

    One Solution collect form web for “Передача параметров хранимым процедурам с помощью PyODBC”

    Я, наконец, получил его, чтобы работать без сбоев

    local_cursor.execute ("{вызов dbo.GetAlarmEventHistoryFrequency_TimeRange (tstart, tend)}")

    это неправильный синтаксис. Должен быть

    local_cursor.execute ("{вызов dbo.GetAlarmEventHistoryFrequency_TimeRange (?,?)}", (tstart), (тенденция))

    Особое внимание следует обратить на специальные символы {} и способ передачи параметров (tstart), (tend) local_cursor.execute (" * { * call dbo.GetAlarmEventHistoryFrequency_TimeRange * (?,?) }", (Tstart) , (тенденция) * )

      Python - лучший язык программирования в мире.