2016-01-20 61 views
1

我在使用pyodbc插入数据时遇到了一些麻烦。我有我已经加入到我的代码微软服务器的详细信息:pyodbc - 在哪里插入数据?

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=INSERT IP NUMBER;DATABASE=INSERT DATABASE NAME;UID=INSERT USER NAME;PWD=INSERT PASSWORD') 

我可以连接到服务器上,但我不知道怎么写,我创建的表。我有以下细节:

variable_cars =“奔驰”,“奥迪”,“法拉利”

称为数据库中的表格“测试”。

而被称为“car_brands”

我我会去加入“variable_cars”列表列“car_brands”在桌子上表中的列?我试过但它没有工作:

cursor.execute("insert into (tester, name) values ('car_brands', 'variable_cars')") 

有谁知道我该怎么做到这一点?

回答

2

你加:

cursor = cnxn.cursor() 

在服务器连接细节和执行之间?像这样:

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=INSERT IP NUMBER;DATABASE=INSERT DATABASE NAME;UID=INSERT USER NAME;PWD=INSERT PASSWORD') 

cursor = cnxn.cursor() 

cursor.executemany("insert into tester (car_brands) values (?)",variable_cars) 
+0

工作正常! – semiflex

0

首先让你的字符串列表到元组的列表:使用.executemany

variable_cars = [(i,) for i in variable_cars] 

然后批量插入到数据库表:

cursor.executemany("insert into tester (car_brands) values (?)",variable_cars) 
+0

我试过了,但没有奏效。该脚本也没有返回一个错误。我猜这也可以工作,如果只有一个项目的字符串:variable_cars =“audi” – semiflex

+0

@ragnampiza:你做了插入后使用'cnxn.commit()'提交?默认情况下,pyodbc不会自动提交。 – root

+0

我已经这样做了,是的。它仍然没有写作。 – semiflex