xralf
xralf

Reputation: 3772

Stored procedure in PyODBC writes: not all arguments converted during string formatting

I have this code:

with connections["mssql_database"].cursor() as cursor:
                sql = "EXEC SaveActivity @id_workplace=?, @personal_number=?, @id_activity=?"
                params = (id_workplace, personal_number, id_activity)
                cursor.execute(sql, params)


TypeError: not all arguments converted during string formatting

When I try

cursor.callproc("SaveActivity", [id_workplace, personal_number, id_activity])

it writes:

AttributeError: 'pyodbc.Cursor' object has no attribute 'callproc'

Upvotes: 1

Views: 1734

Answers (1)

FlipperPA
FlipperPA

Reputation: 14361

This errors occurs because the parameters you are passing don't match the defined types on the database side in SQL Server.

Are @id_workplace, @personal_number and @id_activity all integers? If so, are the Python variables id_workplace, personal_number, and id_activity all integers? What are the values of the Python variables? If any of them are None, you'll need to make sure that the corresponding database variable allows NULL.

Upvotes: 1

Related Questions