【发布时间】:2015-12-02 20:49:35
【问题描述】:
我已经尝试了几个驱动程序:pymsql、pyobdc,但 SQL 中的格式单引号仍然存在问题。以下代码示例:
案例 1。
import pyodbc
UPDATE_SQL3 = """
UPDATE STATION
SET
STATION_NAME = ?,
STATION_TITLE = ?,
ACTIVE = ?
WHERE
STATION_ID = ?
"""
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=local;DATABASE=DB;UID=me;PWD=pass')
cursor = conn.cursor()
cursor.execute(UPDATE_SQL3 %
(name,
title,
active,
id
))
此代码无法编译:
"在字符串格式化期间并非所有参数都被转换"
案例 2。
UPDATE_SQL3 = """
UPDATE STATION
SET
STATION_NAME = %s,
STATION_TITLE = %s,
ACTIVE = %s
WHERE
STATION_ID = %s
"""
我发现错误:
('42000', "[42000] [Microsoft][ODBC SQL Server 驱动程序][SQL 服务器]“The”附近的语法不正确。 (102) (SQLExecDirectW)")
一次title = u'102.7 The Fan'
案例 3。
UPDATE_SQL3 = """
UPDATE STATION
SET
STATION_NAME = '%s',
STATION_TITLE = '%s',
ACTIVE = %s
WHERE
STATION_ID = %s
"""
错误:
('42000', "[42000] [Microsoft][ODBC SQL Server 驱动程序][SQL 服务器]'s' 附近的语法不正确。 (102) (SQLExecDirectW)")
在哪里name = u'Power Michiana\\'s Hits and Hip Hop'
什么是正确的处理方法?
【问题讨论】:
-
对于案例 3 do name = u'Power Michiana\'s Hits and Hip Hop'
-
我怎样才能正确地做到这一点?我试图替换字符 -
title = title.replace("\\", ""),但我仍然看到 -title = u'Power Michiana\\'s Hits and Hip Hop'
标签: python sql sql-server python-2.7 pyodbc