pyodbc 在 MS SQL 服务器中使用二进制数据更新记录
pyodbc update record with binary data in MS SQL server
我正在尝试用二进制数据更新现有记录。
该列的 sql 服务器数据类型是 varbinary(MAX)
我使用的python代码:
result = bytes(result_string, 'utf-8')
cursor = self.connection.cursor()
date_updated = self.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
cursor.execute(f"UPDATE _nsInvoiceReconitionJob SET JobStatus = 2, DateUpdated = '{date_updated}', Result = '{result}' WHERE ID = '{job_id}'")
connection.commit()
结果如下:
File "/home/wessel/Work/crontest/Elvpy/JobProcessing.py", line 37, in save_result
cursor.execute(f"UPDATE _nsInvoiceReconitionJob SET JobStatus = 2, DateUpdated = '{date_updated}', Result = '{result}' WHERE ID = '{job_id}'")
pyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Driver 17 for SQL Server]Syntax error, permission violation, or other nonspecific error (0) (SQLExecDirectW)')
错误提到这可能是一个语法错误,并且查询在不更新“结果”列(二进制数据列)的情况下工作。这意味着错误必须是二进制数据,所以我在没有''的情况下尝试了它,但这也不起作用。
它也可能不是语法错误,意味着我只是做错了。如果有人能让我走上正确的道路,我将不胜感激!
我正在使用 pyodbc 版本 4.0.30,
我将 ODBC 驱动程序 17 用于 SQL 服务器
使用parameters!
result = bytes(result_string, 'utf-8')
cursor = self.connection.cursor()
date_updated = self.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
cursor.execute(
"UPDATE _nsInvoiceReconitionJob SET JobStatus = ?, DateUpdated = ?, Result = ? WHERE ID = ?"
, (2, date_updated, result, job_id)
)
connection.commit()
我正在尝试用二进制数据更新现有记录。
该列的 sql 服务器数据类型是 varbinary(MAX)
我使用的python代码:
result = bytes(result_string, 'utf-8')
cursor = self.connection.cursor()
date_updated = self.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
cursor.execute(f"UPDATE _nsInvoiceReconitionJob SET JobStatus = 2, DateUpdated = '{date_updated}', Result = '{result}' WHERE ID = '{job_id}'")
connection.commit()
结果如下:
File "/home/wessel/Work/crontest/Elvpy/JobProcessing.py", line 37, in save_result
cursor.execute(f"UPDATE _nsInvoiceReconitionJob SET JobStatus = 2, DateUpdated = '{date_updated}', Result = '{result}' WHERE ID = '{job_id}'")
pyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Driver 17 for SQL Server]Syntax error, permission violation, or other nonspecific error (0) (SQLExecDirectW)')
错误提到这可能是一个语法错误,并且查询在不更新“结果”列(二进制数据列)的情况下工作。这意味着错误必须是二进制数据,所以我在没有''的情况下尝试了它,但这也不起作用。 它也可能不是语法错误,意味着我只是做错了。如果有人能让我走上正确的道路,我将不胜感激!
我正在使用 pyodbc 版本 4.0.30, 我将 ODBC 驱动程序 17 用于 SQL 服务器
使用parameters!
result = bytes(result_string, 'utf-8')
cursor = self.connection.cursor()
date_updated = self.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
cursor.execute(
"UPDATE _nsInvoiceReconitionJob SET JobStatus = ?, DateUpdated = ?, Result = ? WHERE ID = ?"
, (2, date_updated, result, job_id)
)
connection.commit()