Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python将数据插入MSSQL服务器_Python_Sql Server - Fatal编程技术网

使用python将数据插入MSSQL服务器

使用python将数据插入MSSQL服务器,python,sql-server,Python,Sql Server,我正在尝试使用以下代码将数据插入sql server表中 import pyodbc user='sa' password='PC#1234' database='climate' port='1433' TDS_Version='8.0' server='192.168.1.103' driver='FreeTDS' con_string='UID=%s;PWD=%s;DATABASE=%s;PORT=%s;TDS=%s;SERVER=%s;driver=%s' % (user,pas

我正在尝试使用以下代码将数据插入sql server表中

import pyodbc
user='sa'
password='PC#1234'
database='climate'
port='1433'
TDS_Version='8.0'
server='192.168.1.103'
driver='FreeTDS'

   con_string='UID=%s;PWD=%s;DATABASE=%s;PORT=%s;TDS=%s;SERVER=%s;driver=%s' % (user,password, database,port,TDS_Version,server,driver)
   cnxn=pyodbc.connect(con_string)
   cursor=cnxn.cursor()
   cursor.execute("INSERT INTO mytable(name,address) VALUES (%s,%s)",('thavasi','mumbai'))
   cnxn.commit()
它在执行时给了我以下错误

   Traceback (most recent call last):
  File "sql.py", line 26, in <module>
  cursor.execute("INSERT INTO mytable(name,address) VALUES (%s,%s)",('thavasi','mumbai'))
 pyodbc.ProgrammingError: ('The SQL contains 0 parameter markers, but 2 parameters were supplied', 'HY000')
回溯(最近一次呼叫最后一次):
文件“sql.py”,第26行,在
execute(“插入mytable(名称、地址)值(%s,%s)”,('thavasi','mumbai'))
pyodbc.ProgrammingError:(“SQL包含0个参数标记,但提供了2个参数”,“HY000”)

我已经检查了insert语句的语法是否正确。那么是什么导致了这个错误呢?

string
这里的格式设置是错误的。试试这个

cursor.execute("INSERT INTO mytable(name,address) VALUES (%s,%s)" %('thavasi','mumbai'))

查看

如果您在字符串中使用占位符,则需要使用%运算符,而不是使用带的参数列表,。所以你的电话应该是这样的:

   cursor.execute("INSERT INTO mytable(name,address) VALUES (%s,%s)" %('thavasi','mumbai'))

您忘记了值之前的
%
符号,
%s
必须使用倒逗号

试试这个:

a1 = row[0]
a2 = row[1]
valores = (a1, a2)

cursor2.execute('INSERT INTO [CENTRAL_ALARM].[dbo].[EEE](E3TimeStamp, CaptacaoSemAgua) VALUES (?,?)', valores)
execute('INSERT-INTO-mytable(name,address)值(“%s”,“%s”),%('thavasi','mumbai'))

在pyodbc模块中使用而不是%,尝试以下操作:

a1 = row[0]
a2 = row[1]
valores = (a1, a2)

cursor2.execute('INSERT INTO [CENTRAL_ALARM].[dbo].[EEE](E3TimeStamp, CaptacaoSemAgua) VALUES (?,?)', valores)
这对我有用

cursor.execute("INSERT INTO tablename(field1,field2) VALUES(?,?) ", (data1,data2))

这适用于SQL Server 2012及更高版本和集成安全性

import pyodbc 
conn = pyodbc.connect('Driver={SQL Server Native Client 11.0};'
                  r'Server=YourServer\YourInstance;'
                  'Database=YourDatabase;'
                  'Trusted_Connection=yes;') #integrated security

cursor = conn.cursor()

SQLCommand = ("INSERT INTO PY.PackageTables (PackageName,PackageTables) VALUES (?,?);") 
Values = ['Test1','Test3']

#Processing Query    
cursor.execute(SQLCommand,Values)

conn.commit()
print("Data Successfully Inserted")   
conn.close()