проблема pymssql - INSERT не работает с параметрами - PullRequest
2 голосов
/ 26 ноября 2010

Я использую pymssql для программирования баз данных на Python в Linux.

У меня проблемы с передачей параметров в запросы.Эта проблема, кажется, существует только с запросами INSERT.

Это работает:

query = "SELECT col1, col2 FROM table WHERE col3=%s"
cur.execute(query, (value,))

Но это не так:

query = "INSERT INTO table (col1, col2) VALUES (%s, %s)"
cur.execute(query, (value1, value2,))

Любая идея, почему запрос INSERT выигралне работает?

Вот обратная связь:

Traceback (most recent call last):
  File "test.py", line 46, in ?
    cur.execute(query, (value1, value2,))
  File "/usr/lib/python2.4/site-packages/pymssql.py", line 126, in execute
    self.executemany(operation, (params,))
  File "/usr/lib/python2.4/site-packages/pymssql.py", line 152, in executemany
    raise DatabaseError, "internal error: %s" % self.__source.errmsg()
pymssql.DatabaseError: internal error: None

Ответы [ 2 ]

1 голос
/ 30 ноября 2010

Получается, что одно из значений, которые я пытался вставить, имело тип Unicode. Когда я преобразовал его в строку, используя str(value1), запрос работал.

0 голосов
/ 26 ноября 2010

Как насчет этого:

cur.execute(query % (value1, value2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...