【问题标题】:pyodbc column name as variablepyodbc 列名作为变量
【发布时间】:2014-02-18 15:22:47
【问题描述】:

当我想更改要写入的列时,我想使用变量而不是编辑 sql 字符串。这似乎有效。我没有收到错误,但是数据库没有更新...这是怎么回事?

cnxn = pyodbc.connect('DRIVER=FreeTDS;SERVER=dkvmsql08;PORT=1433;DATABASE=dingdong_test;UID=dac\svc-dingdong;PWD=c90346KJHjkhg&%dad742210a3d6fd4436c;T$
cur = cnxn.cursor()

name = Dennis
cur.execute("UPDATE dbo.timestamp  set cur.execute("UPDATE dbo.test  set ?=1 where id=?",name, row.id)

【问题讨论】:

    标签: python sql-server pyodbc


    【解决方案1】:

    您的代码中没有明确的提交语句,并且连接调用不包含autocommit=True,因此请尝试在代码末尾添加cnxn.commit()。 :)

    【讨论】:

      【解决方案2】:

      查询参数可用于指定列的,但不能指定列名称,因此您需要执行以下操作:

      name = "yourColumnName"
      sql = "UPDATE dbo.timestamp SET [{}]=1 WHERE ID=?".format(name)
      cur.execute(sql, row.id)
      cur.commit()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-15
        • 2018-11-16
        • 2012-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多