Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新SQL数据库时出现Python错误_Python_Ms Access_Pypyodbc - Fatal编程技术网

更新SQL数据库时出现Python错误

更新SQL数据库时出现Python错误,python,ms-access,pypyodbc,Python,Ms Access,Pypyodbc,我有一些类似这样的python代码 import pypyodbc import pandas as pd home="c:/SQL/" df = pd.read_sql_query(sql4, conn3 for y1 in range(0 , k): ARCHIVE_SERNUM = (df['sernum']).iloc[y1] KQL=len(KIC53_QUERY_LIST) FOUND=False for y2 in range(0,KQL):

我有一些类似这样的python代码

import pypyodbc
import pandas as pd
home="c:/SQL/"
df = pd.read_sql_query(sql4, conn3
for y1 in range(0 , k):
    ARCHIVE_SERNUM = (df['sernum']).iloc[y1]
    KQL=len(KIC53_QUERY_LIST)
    FOUND=False
    for y2 in range(0,KQL):
        if ARCHIVE_SERNUM == KIC53_QUERY_LIST[y2]:
            FOUND=True
            #do something then
            break
    if FOUND == False:
        print(FOUND,ARCHIVE_SERNUM,"This is STIME : ",STIME)
        CTIME=STIME
        cursor = conn3.cursor()
        cursor.execute("""
            UPDATE ENCOMPASS_DIA
            SET CTIME=%s
            WHERE SERNUM=ARCHIVE_SERNUM
            """, (STIME))
这是一个错误,我搞不清楚到底发生了什么。 在本例中,CTIME和STIM都等于相同的17个字符的字符串

File "c:/SQL/ConnectionTest8.py", line 212, in <module>
""", (STIME))

TypeError: Params must be in a list, tuple, or Row
文件“c:/SQL/ConnectionTest8.py”,第212行,在
(“时间”)
TypeError:参数必须位于列表、元组或行中

一个很容易犯的错误

 cursor.execute("""
        UPDATE ENCOMPASS_DIA
        SET CTIME=%s
        WHERE SERNUM=ARCHIVE_SERNUM
        """, (STIME, ))

应该有一个尾随
时间之后,或者(时间)将被解释为列表而不是元组。

很容易犯错误

 cursor.execute("""
        UPDATE ENCOMPASS_DIA
        SET CTIME=%s
        WHERE SERNUM=ARCHIVE_SERNUM
        """, (STIME, ))

应该有一个尾随的
时间之后,或者(时间)将被解释为列表而不是元组。

在这种情况下,正确的Update语句是:

cursor.execute("""UPDATE ENCOMPASS_DIA SET CTIME=? WHERE SERNUM=?""", (SSTIME,ARCHIVE_SERNUM ))

在这种情况下,正确的Update语句是:

cursor.execute("""UPDATE ENCOMPASS_DIA SET CTIME=? WHERE SERNUM=?""", (SSTIME,ARCHIVE_SERNUM ))

我正在使用access DB这一事实是否有影响?您的解决方案导致此错误消息:ProgrammingError:('42000',“[42000][Microsoft][ODBC Microsoft access Driver]查询表达式“%s”中的语法错误”)抱歉,错过了pyodbc标记。您必须在这里使用
而不是
%s
这一问题现在解决了吗?抱歉,在发现“%s”错误后,我立即发现了错误并发布了结果,然后忘了按接受箭头。我使用access DB这一事实是否有影响?您的解决方案导致了此错误m消息:编程错误:('42000',“[42000][Microsoft][ODBC Microsoft Access驱动程序]查询表达式“%s”中的语法错误”)很抱歉,没有找到pyodbc标记。您必须在这里使用
而不是
%s
现在是否已解决此问题?很抱歉,我发现了错误并在发现“%s”错误后立即发布了结果,然后忘了按接受箭头。