更新到 SQL Server 时出现"Cannot find data type READONLY"错误



我很长一段时间以来一直困扰着这个问题,我希望有人能启发我。我有一个我想更新的SQL数据库。这是代码的一些部分。我从SQL提取数据到Python,然后应用函数hex_to_string&我和切片箱计划更新SQL数据库。我没有数据库中的任何ID,但是我有区分条目的日期时间。

query = """ select P from Table """
cnxn = pyodbc.connect(conn_str)
cnxn.add_output_converter(pyodbc.SQL_VARBINARY, hexToString)
cursor: object = cnxn.cursor()
cursor.execute(query)
dtbs= cursor.fetchall()
row_list=[]
ln = len(dtbs)
 cursor.execute(query)
for i in range(ln):
    row=cursor.fetchval()
    result=slicing_bin(row)
    result_float = [float("{0:.2f}".format(i)) for i in result]
    row_list.append(result_float)
crsr = cnxn.cursor()
crsr.execute(query)
aList = [item[0] for item in crsr.fetchall()]
for aValue in aList:
    crsr.execute("""UPDATE Table SET P=? WHERE DATETIME=?""", (row_list, aValue))
crsr.close()
cnxn.commit()

运行此代码时,我收到了一个错误消息,

文件 " c:/users/r/.pycharmce2018.3/config/scratches/finalcombined2.py", 第64行,在 crsr.execute("" UPDACE Access.DBO.M_PWA设置p_pulses =?where dateTime =?"",(row_list,Avalue)) " [42000] [Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]列, 参数或变量1:找不到数据类型。(2715) (sqlexecdirectw);[42000] [Microsoft] [SQL的ODBC驱动程序11 服务器] [SQL Server]无法准备语句。(8180);[42000] [Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]参数或 变量'@P1'具有无效的数据类型。(2724)")

请帮忙,谢谢。

hummm,我会猜到戈德是对的。这当然是我要看的第一件事。好的,这是我从Python中使用MS Access中进行更新的一小部分。

#import pypyodbc
import pyodbc
# MS ACCESS DB CONNECTION
pyodbc.lowercase = False
conn = pyodbc.connect(
    r"Driver={Microsoft Access Driver (*.mdb, *.accdb)};" +
    r"Dbq=C:\path_here\Northwind.mdb;")
# OPEN CURSOR AND EXECUTE SQL
cur = conn.cursor()
# Option 1 - no error and no update
cur.execute("UPDATE dbo_test SET Location = 'New York' Where Status = 'Scheduled'");
conn.commit()

cur.close()
conn.close()

您可以适应特定方案吗?

相关内容

  • 没有找到相关文章

最新更新