G
Greg Corradini
Hello all,
I'm having trouble inserting an SQL selection into a new MS Access table. I
get a parameter error on my insert statement when I try this (see below for
code and error msg). I'm not sure if 'insert' or 'update' is the route I
should be taking.
CODE:
#Import Pythond Standard Library Modules
import win32com.client, sys, os, string, copy, glob
import mx.ODBC.Windows as odbc
# Create the Geoprocessor Object
gp = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")
gp.overwriteoutput = 1
# Variables
tempspace = "C:\Documents and Settings\corr1gre\Desktop\Workspace\DBFs &
Shapefiles\TEST.mdb"
workspace = string.replace(tempspace,"\\","/")
worksheet1 = "Mower_I"
worksheet2 = "Mower_II"
#Conection to Access
driv = 'DRIVER={Microsoft Access Driver (*.mdb)};DBQ='+workspace
conn = odbc.DriverConnect(driv)
curse = conn.cursor()
#Drop Tables if they already exist
try:
curse.execute('Drop table Table_I')
curse.execute('Drop table Table_II')
curse.execute('Drop table Checker')
except:
pass
#Create a New Tables
curse.execute('Create table Table_I (TISCODE TEXT(12), EXISTSIN
TEXT(4),STATUS TEXT(3),NOTES TEXT(50))')
curse.execute('Create table Table_II(TISCODE TEXT(12), EXISTSIN TEXT(4))')
curse.execute('Create table Checker (TISCODE TEXT(12), EXISTSIN
TEXT(4),STATUS TEXT(3),NOTES TEXT(50))')
conn.commit()
#Upload DBF 1 as a List of Tuples: Returns tuple as ('1021500000','BMP')
sql = 'SELECT TISCODE,EXISTSIN from '+worksheet2
curse.execute(sql)
x = curse.fetchall()
#Put the fetched Data into Table_II
for i in x:
curse.execute('Insert into Table_II (TISCODE,EXISTSIN) values
(%s,%s)'%(i[0],i[1]))
conn.commit()
conn.close()
TRACEBACK ERROR MSG:
Traceback (most recent call last):
File "C:/Documents and Settings/corr1gre/Desktop/Workspace/Python/ArcGIS
Python/ExistenceChecker and Update/Access Double Checker/Access_SQL.py",
line 40, in ?
curse.execute('Insert into Table_II (TISCODE,EXISTSIN) values
(%s,%s)'%(i[0],i[1]))
ProgrammingError: ('07001', -3010, '[Microsoft][ODBC Microsoft Access
Driver] Too few parameters. Expected 1.', 4612)
I'm having trouble inserting an SQL selection into a new MS Access table. I
get a parameter error on my insert statement when I try this (see below for
code and error msg). I'm not sure if 'insert' or 'update' is the route I
should be taking.
CODE:
#Import Pythond Standard Library Modules
import win32com.client, sys, os, string, copy, glob
import mx.ODBC.Windows as odbc
# Create the Geoprocessor Object
gp = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")
gp.overwriteoutput = 1
# Variables
tempspace = "C:\Documents and Settings\corr1gre\Desktop\Workspace\DBFs &
Shapefiles\TEST.mdb"
workspace = string.replace(tempspace,"\\","/")
worksheet1 = "Mower_I"
worksheet2 = "Mower_II"
#Conection to Access
driv = 'DRIVER={Microsoft Access Driver (*.mdb)};DBQ='+workspace
conn = odbc.DriverConnect(driv)
curse = conn.cursor()
#Drop Tables if they already exist
try:
curse.execute('Drop table Table_I')
curse.execute('Drop table Table_II')
curse.execute('Drop table Checker')
except:
pass
#Create a New Tables
curse.execute('Create table Table_I (TISCODE TEXT(12), EXISTSIN
TEXT(4),STATUS TEXT(3),NOTES TEXT(50))')
curse.execute('Create table Table_II(TISCODE TEXT(12), EXISTSIN TEXT(4))')
curse.execute('Create table Checker (TISCODE TEXT(12), EXISTSIN
TEXT(4),STATUS TEXT(3),NOTES TEXT(50))')
conn.commit()
#Upload DBF 1 as a List of Tuples: Returns tuple as ('1021500000','BMP')
sql = 'SELECT TISCODE,EXISTSIN from '+worksheet2
curse.execute(sql)
x = curse.fetchall()
#Put the fetched Data into Table_II
for i in x:
curse.execute('Insert into Table_II (TISCODE,EXISTSIN) values
(%s,%s)'%(i[0],i[1]))
conn.commit()
conn.close()
TRACEBACK ERROR MSG:
Traceback (most recent call last):
File "C:/Documents and Settings/corr1gre/Desktop/Workspace/Python/ArcGIS
Python/ExistenceChecker and Update/Access Double Checker/Access_SQL.py",
line 40, in ?
curse.execute('Insert into Table_II (TISCODE,EXISTSIN) values
(%s,%s)'%(i[0],i[1]))
ProgrammingError: ('07001', -3010, '[Microsoft][ODBC Microsoft Access
Driver] Too few parameters. Expected 1.', 4612)