On 2014-08-27 21:31, dennisearlev...@gmail.com wrote:

   Hi,

   Sorry about the simple question but I am very new to Python.

   Anyway, I have a function that will be used to call a stored procedure and I 
need to format the string with the correct number of parameter markers for the 
ODBC driver, fairly standard stuff.

   What I have works but looks ugly, is there a better way to build or 
concatenate a string or is a list or a tuple a better option?

the function looks like this

   def callSp(self, schema, spName) :
    sqlCode = "{call " + schema + "." + spName + "("
    par_Markers = ""
    y = len(self.param)
    x = 0
    while x < y :
      par_Markers = par_Markers.join("?")
      if (x < y - 1) :
        par_Markers = par_Markers.join(", ")
      x += 1
    self.cmdText = sqlCode + par_Markers + ")}"
    self.ExecuteCursor()

    return

How many parameters are there? len(self.param)

Make that many placeholders and then join them together with commas:

', '.join(['?'] * len(self.param))

self.param is a list of parameters.  sself.cmdText is the text that will be 
used to call the stored procedure.

the function would be called like this

   class.AddParameter(some value 1)
   class.AddParameter(some value 2)
   callSp("schemaName", "storedProcedureName")

   the self.cmdText will look like this just before the ExecuteCursor call

   "{call schemaName.StoredProcedureName(?, ?)}"

   the code works, but as I said is a bit ugly, is there better methods?


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to