This is my code below and I try to load data from one database to another. I believe everything works fine but an error occurs and I don’t know what this means.
import pymssql, psycopg2
class Datenbankabfrage:
def __init__(self):
self.conn1 = pymssql.connect(host='***', user='***', password='***', database='****')
self.conn2 = psycopg2.connect("dbname='****' user='****' host='****' password='****'")
self.cur1 = self.conn1.cursor()
self.cur2 = self.conn2.cursor()
def abfrage(self):
self.cur1.execute("SELECT tag, site, plant, unit, line, ProcessID AS pid, Count(ReadTime) AS mods \
FROM ( \
select dateadd(dd, -1, convert(varchar, getDate(),111)) \
as tag, ReadTime, processID, subid, PR.Site, PR.Plant, PR.Unit, PR.Line \
from FactBarcodeReading BCR with(nolock) \
inner join DimProcess PR on BCR.ProcessKey = PR.ProcessKey \
where PR.ProcessID IN (802, 1190, 1800, 3090, 3590, 4390, 4590, 4800, 5000, 5400, 4190) \
and ReadTime between dateadd(dd, -1, convert(varchar, getDate(),111)) \
and dateadd(dd, -0, convert(varchar, getDate(),111)) \
) a \
GROUP BY tag, site, plant, unit, line, ProcessID \
ORDER BY site, plant, unit, line, ProcessID")
self.rows = self.cur1.fetchall()
query = ("INSERT INTO '20091229global' (proddate, site, plant, unit, line, pid, mods) VALUES (?, ?, ?, ?, ?, ?, ?)", self.rows)
self.cur2.executemany(query)
self.conn2.commit()
self.conn2.close()
a = Datenbankabfrage()
a.abfrage()
This is the error:
Traceback (most recent call last):
File "C:\Documents and Settings\FS107319\My Documents\Python\mssql_abfrage.py", line 39, in <module>
a.abfrage()
File "C:\Documents and Settings\FS107319\My Documents\Python\mssql_abfrage.py", line 30, in abfrage
self.cur2.executemany(query)
TypeError: Required argument 'vars_list' (pos 2) not found
————————————————————————
Ok here is my edit:
Now, this is my new code
query("INSERT INTO '20091229global' (proddate, site, plant, unit, line, pid, mods) VALUES ('?', '?', '?', '?', '?', '?', '?')")
self.cur2.execute(query, self.rows)
sorry the error before occured was wrong because i forgot the “=” behind query
that’s the real error
Traceback (most recent call last):
File "C:\Documents and Settings\FS107319\My Documents\Python\mssql_abfrage.py", line 39, in <module>
a.abfrage()
File "C:\Documents and Settings\FS107319\My Documents\Python\mssql_abfrage.py", line 30, in abfrage
self.cur2.execute(query, self.rows)
ProgrammingError: FEHLER: Syntaxfehler bei »'20091229global'«
LINE 1: INSERT INTO '20091229global' (proddate, site, plant, unit, l...
According to the documentation,
executemany()takes two parameters. You have provided but one (query).Perhaps you just want
execute()?Or, more likely: