Simple mx.ODBC prob seeks simple answer

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Greg Corradini

    #1

    Simple mx.ODBC prob seeks simple answer


    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("esri Geoprocessing.G pDispatch.1")
    gp.overwriteout put = 1

    # Variables
    tempspace = "C:\Documen ts and Settings\corr1g re\Desktop\Work space\DBFs &
    Shapefiles\TEST .mdb"
    workspace = string.replace( tempspace,"\\", "/")
    worksheet1 = "Mower_I"
    worksheet2 = "Mower_II"

    #Conection to Access
    driv = 'DRIVER={Micros oft Access Driver (*.mdb)};DBQ='+ workspace
    conn = odbc.DriverConn ect(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(TISCOD E 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,EXISTSI N from '+worksheet2
    curse.execute(s ql)
    x = curse.fetchall( )

    #Put the fetched Data into Table_II
    for i in x:
    curse.execute(' Insert into Table_II (TISCODE,EXISTS IN) 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/ExistenceChecke r and Update/Access Double Checker/Access_SQL.py",
    line 40, in ?
    curse.execute(' Insert into Table_II (TISCODE,EXISTS IN) values
    (%s,%s)'%(i[0],i[1]))
    ProgrammingErro r: ('07001', -3010, '[Microsoft][ODBC Microsoft Access
    Driver] Too few parameters. Expected 1.', 4612)
    --
    View this message in context: http://www.nabble.com/Simple-mx.ODBC....html#a9871804
    Sent from the Python - python-list mailing list archive at Nabble.com.

Working...