On Thu, 23 Apr 2009 11:18:06 +0200, giorgio <g.cl...@tiscali.it> wrote:
> Traceback (most recent call last): > File "D:\Python24\WCronos.py", line 172, in OnOkButton > cur.execute("CREATE TABLE stm (id INT(2),cod TEXT(10),dattim TEXT(8))") > dbi.program-error: [Microsoft][Driver ODBC Microsoft Access] Errore di > sintassi nell'istruzione CREATE TABLE. in EXEC > > risultato sempre deprimente.......... Ma come vedi è un errore diverso dal precedente, che era: Traceback (most recent call last): File "D:\Python24\WCronos.py", line 172, in OnOkButton cur.execute["CREATE TABLE stm (id INT(2),cod TEXT(10),dattim TEXT(8))"] TypeError: unsubscriptable object il primo errore era un errore in python: hai provato ad applicare il subscript (l'operatore []) ad un oggetto che non lo prevede (ad una funzione, "cur.execute"). Ora hai un errore diverso: il tuo comando ha trasmesso correttamente la stringa della query dal python al driver odbc... e qualcosa non ha funzionato lì dentro. Il problema che hai è che odbc non ti dice dove sia l'errore: probabilmente perché access non è pensato per essere usato in sql ma solo dalla sua interfaccia, i messaggi di errore che genera non sono molto indicativi. Siccome troverai difficile documentarti su questa sintassi, ti suggerisco di mollare access ed usare sqlite (http://sqlite.org/), che è un altro database embedded (ovvero non hai bisogno di un server: consiste in una libreria e il db viene salvato in un file, esattamente come access/jet o come si chiamava). Il vantaggio che avresti è probabilmente in una documentazione migliore e messaggi di errori più esplicativi. SQLite è già incluso in python 2.5 e successivi (http://docs.python.org/library/sqlite3.html) ed è multipiattaforma. NB: access non è malaccio come database personale, e mi ha sempre risposto bene anche con utilizzi pesanti, quindi non vedere il messaggio come "M$-cacca-male-assoluto". Ma scrivere la definizione di un database direttamente in sql non è il caso di uso tipico di access e ti scontrerai regolarmente con messaggi di errore difficili da interpretare: il mio consiglio di passare a SQLite verte soprattutto su questo. -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python