2015-07-12 85 views
3

我试图插入一些数据已经在SQL Azure中创建一个表。的Python 3.4.1 INSERT INTO SQL Azure的(pyodbc)

SQL结构

Field 1 DATE 
Field 2 INT 
Field 3 INT 

Python中的代码:

#I know I have connected to the correct database. 
Connection = pyodbc.connect(conn.conn()) 
cursor = Connection.cursor() 

SQLCommand = ('INSERT INTO table_name ([Field 1], [Field 2], [Field 3]) VALUES ('31-Dec-14', 1, 2);') 
cursor.execute(SQLCommand) 
Connection.commit() 

我收到以下错误

pyodbc.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid column name '31-DEC-2014'. (207) 

如果我

SQLCommand = ('INSERT INTO table_name ([Field 1], [Field 2], [Field 3]) VALUES (?, ?, ?);', ('31-DEC-2014',1,2)) 
cursor.execute(SQLCommand) 
Connection.commit() 
更换

我收到以下错误

TypeError: The first argument to execute must be a string or unicode query. 

我应该如何输入日期和整数到通过Python的SQL Azure的表?

谢谢

回答

1

日期解析器不喜欢你的格式。请参阅Microsoft文档的有效formats

列表下面的语法应工作:

SQLCommand = ("INSERT INTO table_name ([Field 1], [Field 2], [Field 3]) VALUES ('2014-12-31', 1, 2);") 
cursor.execute(SQLCommand) 
Connection.commit() 
2

谢谢你的问题。 我强烈建议你使用pymssql,如果你想使用Python连接到SQL Azure的数据库。 回到你的问题,它取决于创建SQL表时使用的日期时间格式。

这里是你将如何插入使用pymssql对AdventureWorks的模式日期和整数(AdventureWorks的架构是一个预装的模式,你可以与测试创建数据库)。

import pymssql 
conn = pymssql.connect(server='yourserver.database.windows.net', user='[email protected]', password='yourpassword', database='AdventureWorks') 
cursor = conn.cursor() 
cursor.execute("INSERT SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) OUTPUT INSERTED.ProductID VALUES ('SQL Server Express', 'SQLEXPRESS', 0, 0, CURRENT_TIMESTAMP)") 
row = cursor.fetchone() 
while row: 
    print "Inserted Product ID : " +str(row[0]) 
    row = cursor.fetchone() 

如果您有关于如何在你的机器上安装pymssql疑问,这里是一些参考文档,这将帮助你:)

- Windows
- Mac
- Linux

如果你有任何与Azure SQL DB一起使用pymssql的问题,请让我知道,因为我很乐意提供帮助。

最佳,
符合Bhagdev
项目经理,Microsoft

+0

注释1:我觉得pymssql需要使用 'freetds的' 吗? (即SQL Native Client 11.0)在Windows系统中不起作用? – Harris

+0

注释2:我还是用pymssql收到无效的列名称的错误。我认为这是值得做把日期格式通过Python到SQL。 – Harris

+0

你好哈里斯,它应该在Windows上运行。这里是你如何做到这一点 - https://azure.microsoft.com/en-us/documentation/articles/sql-database-develop-python-simple-windows/。另外你的日期格式在你的数据库中是什么样的。上面链接中的代码应该适用于默认日期格式。 –