2010-11-26 55 views
2

我正在使用pymssql在Linux上使用Python進行數據庫編程。pymssql問題 - INSERT不能用於參數

我遇到了傳遞參數給查詢的問題。這個問題似乎只存在於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,)) 

任何想法,爲什麼插入查詢將無法正常工作?

這裏是回溯:

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 
+0

同樣的例子適用於Fedora 13附帶的MySQL-python 1.2.3。 – MarkR 2010-11-26 12:08:34

+2

它確實在MySQL中有效,但我使用的是MSSQL。 :( – infrared 2010-11-26 12:31:12

回答

1

原來我試圖插入是類型統一的價值觀之一。當我將它轉換爲字符串時,使用str(value1),查詢工作。

-1

如何:

cur.execute(query % (value1, value2))