Ado stored procs with parameters
Sam Corder
scorder at incigna.com
Wed Jul 5 15:22:59 EDT 2000
I'm having a bit of trouble using a stored proc on MSSQL that takes
parameters. I create a command object and then append the parameters to it.
Then I create a recordset object and use the open method passing the command
object and a few other parameters. Unfortunately I get an error saying that
the stored proc requires The same parameter that I just added. Below is the
code I'm using. Any ideas?
Sam Corder
import win32com.client
constants = win32com.client.constants
class dbcon:
def __init__ (self, connect = None):
self.connectstr = connect
def runSQLReturnRS(self, sql, params = None):
if self.connectstr == None:
return None
else:
rs = win32com.client.Dispatch('ADODB.Recordset')
cmd = win32com.client.Dispatch('ADODB.Command')
cmd.ActiveConnection = self.connectstr
cmd.CommandText = sql
if params != None:
for parm in params:
cmd.Parameters.Append(cmd.CreateParameter(parm[0],
parm[1], constants.adParamInput, parm[2], parm[3]))
rs.Open(cmd, CursorType = constants.adOpenForwardOnly, LockType
= constants.adLockReadOnly)
return rs
def __AddParams(self, cmd, params):
for parm in params:
cmd.Parameters.Append(cmd.CreateParameter(parm[0], parm[1],
constants.adParamInput, parm[2], parm[3]))
if __name__ == '__main__':
db = dbcon("Provider=SQLOLEDB;Data Source=s-incigna2k;User
Id=msl_login;Password=***;Connect Timeout=5;network library=dbmssocn;Initial
Catalog=msl;")
params = ("ExpJobID", constants.adInteger, 4, 11),
rs = db.runSQLReturnRS("ExpConfig_Get", params)
print rs.Fields.Count
More information about the Python-list
mailing list