M
m.biddiscombe
Hi,
I'm trying to use pymssql to execute a stored procedure. Currently, I
have an Excel spreadsheet that uses VBA in this manner:
Private Function CreateNewParrot(connDb As ADODB.Connection) As Long
Dim objCommand As ADODB.Command
Dim iParrot As Long
Dim bSuccess As Boolean
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = connDb
objCommand.CommandText = "create_new"
objCommand.CommandType = adCmdStoredProc
objCommand.Parameters.Refresh
On Error Resume Next
Err.Clear
objCommand.Execute
bSuccess = (Err.Number = 0)
On Error GoTo 0
If (bSuccess) Then
If (IsNull(objCommand("@parrot"))) Then
iParrot = 0
Else
iParrot = CLng(objCommand("@parrot"))
End If
Else
iParrot = 0
End If
Set objCommand = Nothing
CreateNewParrot = iParrot
End Function
My attempts to translate this into a python script using pymssql have
so far been fruitless. Here is what I have tried:Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "C:\Program Files\Python\lib\site-packages\pymssql.py", line
127, in execute
self.executemany(operation, (params,))
File "C:\Program Files\Python\lib\site-packages\pymssql.py", line
153, in executemany
raise DatabaseError, "internal error: %s" % self.__source.errmsg()
pymssql.DatabaseError: internal error: SQL Server message 8114,
severity 16, state 5, procedure create_new_parrot, line 0:
Error converting data type nvarchar to int.
DB-Lib error message 10007, severity 5:
General SQL Server error: Check messages from the SQL Server.
Any ideas?
Thanks.
<M>
I'm trying to use pymssql to execute a stored procedure. Currently, I
have an Excel spreadsheet that uses VBA in this manner:
Private Function CreateNewParrot(connDb As ADODB.Connection) As Long
Dim objCommand As ADODB.Command
Dim iParrot As Long
Dim bSuccess As Boolean
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = connDb
objCommand.CommandText = "create_new"
objCommand.CommandType = adCmdStoredProc
objCommand.Parameters.Refresh
On Error Resume Next
Err.Clear
objCommand.Execute
bSuccess = (Err.Number = 0)
On Error GoTo 0
If (bSuccess) Then
If (IsNull(objCommand("@parrot"))) Then
iParrot = 0
Else
iParrot = CLng(objCommand("@parrot"))
End If
Else
iParrot = 0
End If
Set objCommand = Nothing
CreateNewParrot = iParrot
End Function
My attempts to translate this into a python script using pymssql have
so far been fruitless. Here is what I have tried:Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "C:\Program Files\Python\lib\site-packages\pymssql.py", line
127, in execute
self.executemany(operation, (params,))
File "C:\Program Files\Python\lib\site-packages\pymssql.py", line
153, in executemany
raise DatabaseError, "internal error: %s" % self.__source.errmsg()
pymssql.DatabaseError: internal error: SQL Server message 8114,
severity 16, state 5, procedure create_new_parrot, line 0:
Error converting data type nvarchar to int.
DB-Lib error message 10007, severity 5:
General SQL Server error: Check messages from the SQL Server.
Any ideas?
Thanks.
<M>