Trouble w/ 'create table' sql on mx.ODBC

Steve Holden steve at holdenweb.com
Thu Apr 5 15:32:20 EDT 2007


Greg Corradini wrote:
> Hello,
> Lately I've been using the mx.ODBC module to query Access (mdb) tables. For
> the life of me, I can't get the 'create table' sql command to work. I use
> this command in Oracle and I've seen other mx.ODBC users weave into their
> scripts for Access. But I still can't get this simple test run below to work
> (ignore the geoprocessor object for ArcGIS):
> 
> #Import Python 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,"\\","/")
>                            
> #Conection to Access
> driv = 'DRIVER={Microsoft Access Driver (*.mdb)};DBQ='+workspace
> conn = odbc.DriverConnect(driv)
> curse = conn.cursor()
> 
> #Upload Tbl 1 as a List of Tuples
> curse.execute('SELECT TISCODE,EXISTSIN,STATUS,NOTES from Mower_I')
> x = curse.fetchall()
> 
> #Create New Table
> curse.execute('Create table TEST (TISCODE Integer)')
> curse.close()
> conn.close()
> del gp

So what happens? Do you see a traceback, or does the program complete 
without any apparent change to the database?

It might be because Access doesn't automatically commit DDL changes like 
some other databases do. Try adding a conn.commit() before your 
conn.close().

regards
  Steve
-- 
Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd          http://www.holdenweb.com
Skype: holdenweb     http://del.icio.us/steve.holden
Recent Ramblings       http://holdenweb.blogspot.com




More information about the Python-list mailing list