【发布时间】:2021-07-20 19:27:39
【问题描述】:
我在 Overflow 上查看了几个不同的类似示例,但没有找到解决问题的方法。有问题的行似乎如下:
cmd = "'''UPDATE [Python_Test] SET [DB #] = ['123456798'] WHERE Case2 =
['ZZZ00000']'''"
我使用以下命令运行它(当我执行 INSERT pyodbc 命令时,它 100% 有效):
crsr.execute(eval(cmd))
正如标题所暗示的,我不断收到以下错误消息: ('07002', '[07002] [Microsoft][ODBC Microsoft Access Driver] 参数太少。预期为 2. (-3010) (SQLExecDirectW)')
我已经多次看到特殊字符会导致问题,但我相信我已经针对此类问题采取了必要的预防措施,但也许有人会看到我完全错过的一些东西。
如果有人需要任何后续信息,请随时告诉我!
【问题讨论】:
-
为什么
'123456798'和'ZZZ00000'周围有括号([])? -
您在这里看到的大概是我对这段代码的第 10 次迭代。我已经多次打开和关闭括号,只是试图影响某种不同的结果,尽管我知道括号对这些值没有任何影响。所以要回答你的问题,只是我试图强行进入某种类型的答案。请随意忽略它们,因为无论如何结果都不会改变。谢谢!
-
那甚至不是有效的python。带有嵌入换行符的三重单引号周围的双引号是 SyntaxError。摆脱外部双引号以摆脱 SyntaxError 这也消除了调用
eval(...) -
刚刚试了一下。不幸的是仍然有同样的结果。 '参数太少。预计 2 分钟。