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