Re: [Python] Python e ms access
Hello Enrico, Thursday, April 23, 2009, 10:23:18 PM, you wrote: EHB> On Thursday 23 April 2009 14:17:51 giorgio wrote: >> io ho bisogno di questi orari di timbratura per sviluppare un programma >> autonomo, in nessun modo legato al db creato in access. EHB> La "via" corretta e` che ti importi i dati nella tua base dati e poi li EHB> elabori. In questo contesto non capisco quindi perche` cerchi di creare una EHB> tabella nella base dati Jet, anche se suppongo che sia per delle prove. In EHB> questo caso ti consiglio di cercare un tool che si connette via ODBC ad una EHB> base dati e ti permetta di eseguire le query che ti servono (uno di questi, EHB> se non ricordo male, si chiama dbgate) EHB> Enrico EHB> ___ EHB> Python mailing list EHB> Python@lists.python.it EHB> http://lists.python.it/mailman/listinfo/python Ho deciso di importare le tabelle che mi servono in sqlite e da li manipolare i dati come voglio con Python. Grazie a tutti! -- Best regards, giorgio ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
On Thursday 23 April 2009 14:17:51 giorgio wrote: > io ho bisogno di questi orari di timbratura per sviluppare un programma > autonomo, in nessun modo legato al db creato in access. La "via" corretta e` che ti importi i dati nella tua base dati e poi li elabori. In questo contesto non capisco quindi perche` cerchi di creare una tabella nella base dati Jet, anche se suppongo che sia per delle prove. In questo caso ti consiglio di cercare un tool che si connette via ODBC ad una base dati e ti permetta di eseguire le query che ti servono (uno di questi, se non ricordo male, si chiama dbgate) Enrico ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
On Wednesday 22 April 2009 23:41:04 Gian Mario Tagliaretti wrote: > uhm... io sarei più interessato sul perchè non dovrebbe usarlo. Perche`, notoriamente, Jet ha notevoli problemi di stabilita` e limitazioni tali da far preferire qualsiasi altra soluzione (tipo SQLite). Inoltre, visto e considerato che Access e` solamente un frontend e che tale frontend ha senso solo se viene usato per scopi applicativi (e.g. la creazione di un frontend ad un db con tanto di maschere e report per l'inserimento e la visualizzazione dei dati), l'unico motivo per usarlo in congiunzione con Python e` perche` gia` si possiede una base dati popolata Enrico ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
On Thursday 23 April 2009 11:19:10 giorgio wrote: > perchè devo fare delle elaborazione sui dati che con access (mi sembra > perchè non ho office) non si possono fare. Se ti serve solo la parte di database, puoi usarla senza avere Office installato (il driver ODBC ti permette di creare la base dati) Enrico ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
Hello Pietro, Thursday, April 23, 2009, 2:23:23 PM, you wrote: PB> Il giorno gio, 23/04/2009 alle 14.12 +0200, Daniele Varrazzo ha scritto: >> On Thu, 23 Apr 2009 13:56:55 +0200, giorgio wrote: >> > In definitiva devo manipolare i dati di un sistema di >> > timbratura/controllo-accessi che salva i dati in access. >> > Quindi se trovo un modo per convertire in automatico le tabelle di access >> > che mi servono. >> > >> > Ok adesso cerco in rete. >> > Grazie. >> Guarda che NON ti ho consigliato di trovare un modo di convertire da access >> a sqlite e viceversa. PB> Cosa che comunque, per la cronaca, mi sembra assolutamente fattibile (la PB> sto facendo proprio in questi giorni, dato che in un programma devo PB> utilizzare i dati di un db access e io sono una di quelle persone che "M PB> $-cacca-male-assoluto"). PB> La via che sto seguendo è il programma mdb-export dagli mdbtools. PB> Converte in csv, una table alla volta, poi mi ritraduco il csv in sqlite PB> (per questo passaggio, attualmente faccio il parsing io e uso PB> sqlalchemy; se ti interessa, ti passo il codice appena è pronto, ma PB> probabilmente ci sono anche librerie che lo fanno già). PB> ciaociao PB> Pietro Grazie. -- Best regards, giorgio ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
Pietro Battiston wrote: > La via che sto seguendo è il programma mdb-export dagli mdbtools. > Converte in csv, una table alla volta, poi mi ritraduco il csv in sqlite > (per questo passaggio, attualmente faccio il parsing io e uso > sqlalchemy; se ti interessa, ti passo il codice appena è pronto, ma > probabilmente ci sono anche librerie che lo fanno già). > Una cosa come questa, presumo (non testata): > def carica_mdb(): > mdb = file('DB_foo.mdb') > > args = ['/usr/bin/mdb-export', mdb, 'anag_dbsw'] > pipe = subprocess.Popen(args, stdout=subprocess.PIPE).stdout > csv_reader = csv.reader(pipe) > header = dict((name,i) for i,name in enumerate(csv_reader.next())) > > ins = metadata.tables['tabella_locale'].insert() > for line in csv_reader: > line = [ s.decode('utf-8') for s in line ] > ins.execute(foo= line[header['foo']], > bar= line[header['bar']], > baz= line[header['baz']], > qux= line[header['qux']], > garply = line[header['garply']]) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
Hello Massimiliano, Thursday, April 23, 2009, 2:02:34 PM, you wrote: > Ciao, giusto per conoscenza. CREATE TABLE stm (id INT(2),cod TEXT(10),dattim TEXT(8)) non funziona nemmeno da dentro access, ritorna un sintax error. Questo funge: CREATE TABLE stm (id INT,cod TEXT(10),dattim TEXT(8)) Ciao Massimiliano Nessun errore! Grazie. Best regards, Giorgio ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
Il giorno gio, 23/04/2009 alle 14.12 +0200, Daniele Varrazzo ha scritto: > On Thu, 23 Apr 2009 13:56:55 +0200, giorgio wrote: > > > In definitiva devo manipolare i dati di un sistema di > > timbratura/controllo-accessi che salva i dati in access. > > Quindi se trovo un modo per convertire in automatico le tabelle di access > > che mi servono. > > > > Ok adesso cerco in rete. > > Grazie. > > Guarda che NON ti ho consigliato di trovare un modo di convertire da access > a sqlite e viceversa. Cosa che comunque, per la cronaca, mi sembra assolutamente fattibile (la sto facendo proprio in questi giorni, dato che in un programma devo utilizzare i dati di un db access e io sono una di quelle persone che "M $-cacca-male-assoluto"). La via che sto seguendo è il programma mdb-export dagli mdbtools. Converte in csv, una table alla volta, poi mi ritraduco il csv in sqlite (per questo passaggio, attualmente faccio il parsing io e uso sqlalchemy; se ti interessa, ti passo il codice appena è pronto, ma probabilmente ci sono anche librerie che lo fanno già). ciaociao Pietro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
Hello Daniele, Thursday, April 23, 2009, 2:12:11 PM, you wrote: DV> On Thu, 23 Apr 2009 13:56:55 +0200, giorgio wrote: >> In definitiva devo manipolare i dati di un sistema di >> timbratura/controllo-accessi che salva i dati in access. >> Quindi se trovo un modo per convertire in automatico le tabelle di access >> che mi servono. >> Ok adesso cerco in rete. >> Grazie. DV> Guarda che NON ti ho consigliato di trovare un modo di convertire da access DV> a sqlite e viceversa. DV> Se stai scrivendo un programma e vuoi usare un db personale, sqlite è un DV> buon sostituto di access. Se invece stai lavorando ad un programma DV> esistente basato su access, non ti divertirai a lavorarci senza avere DV> office (te la puoi cavare a fare select/insert/update/delete, ma fare data DV> definition sarà più difficile), e non credo che sqlite ti possa aiutare DV> più di tanto (mi sembra anzi che ti accingi ad avere un problema in più). No il sistema di controllo accessi va per conto suo, ogni timbratura la registra in access, io ho bisogno di questi orari di timbratura per sviluppare un programma autonomo, in nessun modo legato al db creato in access. La conversione mi serve per fare operazioni sui dati in maniera autonoma. -- Best regards, giorgio ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
On Thu, 23 Apr 2009 13:56:55 +0200, giorgio wrote: > In definitiva devo manipolare i dati di un sistema di > timbratura/controllo-accessi che salva i dati in access. > Quindi se trovo un modo per convertire in automatico le tabelle di access > che mi servono. > > Ok adesso cerco in rete. > Grazie. Guarda che NON ti ho consigliato di trovare un modo di convertire da access a sqlite e viceversa. Se stai scrivendo un programma e vuoi usare un db personale, sqlite è un buon sostituto di access. Se invece stai lavorando ad un programma esistente basato su access, non ti divertirai a lavorarci senza avere office (te la puoi cavare a fare select/insert/update/delete, ma fare data definition sarà più difficile), e non credo che sqlite ti possa aiutare più di tanto (mi sembra anzi che ti accingi ad avere un problema in più). -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
Hello Daniele, Thursday, April 23, 2009, 1:17:36 PM, you wrote: DV> Siccome troverai difficile documentarti su questa sintassi, ti suggerisco DV> di mollare access ed usare sqlite (http://sqlite.org/), che è un altro DV> database embedded (ovvero non hai bisogno di un server: consiste in una DV> libreria e il db viene salvato in un file, esattamente come access/jet o DV> come si chiamava). Il vantaggio che avresti è probabilmente in una DV> documentazione migliore e messaggi di errori più esplicativi. DV> SQLite è già incluso in python 2.5 e successivi DV> (http://docs.python.org/library/sqlite3.html) ed è multipiattaforma. DV> NB: access non è malaccio come database personale, e mi ha sempre risposto DV> bene anche con utilizzi pesanti, quindi non vedere il messaggio come DV> "M$-cacca-male-assoluto". Ma scrivere la definizione di un database DV> direttamente in sql non è il caso di uso tipico di access e ti scontrerai DV> regolarmente con messaggi di errore difficili da interpretare: il mio DV> consiglio di passare a SQLite verte soprattutto su questo. In definitiva devo manipolare i dati di un sistema di timbratura/controllo-accessi che salva i dati in access. Quindi se trovo un modo per convertire in automatico le tabelle di access che mi servono. Ok adesso cerco in rete. Grazie. -- Best regards, giorgiomailto:g.cl...@tiscali.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
On Thu, 23 Apr 2009 11:18:06 +0200, giorgio 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
Re: [Python] Python e ms access
Hello Gian, Wednesday, April 22, 2009, 11:41:04 PM, you wrote: GMT> 2009/4/22 Enrico 'Henryx' Bianchi : >>> Il risultato non cambia, non riesco a creare una tabella in un db ms >>> access! >> Di tutta la storia, non ho capito una cosa: perche` usi Access? GMT> uhm... io sarei più interessato sul perchè non dovrebbe usarlo. GMT> ciao perchè devo fare delle elaborazione sui dati che con access (mi sembra perchè non ho office) non si possono fare. -- Best regards, giorgiomailto:g.cl...@tiscali.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
Hello moaiamorfo, Wednesday, April 22, 2009, 6:11:46 PM, you 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))"] >> TypeError: unsubscriptable object >> Il risultato non cambia, non riesco a creare una tabella in un db ms access! m> ciao, execute è un metodo... perché lo invochi con delle quadre? m> prova con cur.execute("CREATE TABLE stm (id INT(2),cod TEXT(10),dattim m> TEXT(8))"). m> saluti 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.. -- Best regards, giorgiomailto:g.cl...@tiscali.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
2009/4/22 Enrico 'Henryx' Bianchi : >> Il risultato non cambia, non riesco a creare una tabella in un db ms >> access! > Di tutta la storia, non ho capito una cosa: perche` usi Access? uhm... io sarei più interessato sul perchè non dovrebbe usarlo. ciao -- Gian Mario Tagliaretti GNOME Foundation member gia...@gnome.org ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
On Wednesday 22 April 2009 16:45:58 giorgio wrote: > Il risultato non cambia, non riesco a creare una tabella in un db ms > access! Di tutta la storia, non ho capito una cosa: perche` usi Access? Enrico ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
> ... > 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 risultato non cambia, non riesco a creare una tabella in un db ms access! ciao, execute è un metodo... perché lo invochi con delle quadre? prova con cur.execute("CREATE TABLE stm (id INT(2),cod TEXT(10),dattimTEXT(8))"). saluti -- Antonio Fittipaldi http://www.python-it.org # il punto di riferimento italiano per gli appassionati di Python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Python e ms access
Ciao a tutti, Da varie ricerche in rete ho trovato questa sintassi: s = odbc.odbc('dbodbc') # dbodbc punta al db ms access cur = s.cursor() cur.execute("select * from STORICO where DAT_STOR >= ?\ and DAT_STOR <= ?\ order by COD_ANAG,DAT_STOR",(self.dtx_reg_ini,self.dtx_reg_fin,)) #questo funziona benissimo #se esiste distrugge la tabella try: cur.execute("DROP TABLE stm") #la cartella la cancella except: print "La tabella stm non esiste!" cur.execute["CREATE TABLE stm (id INT(2),cod TEXT(10),dattim TEXT(8))"] che da questo errore: 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 risultato non cambia, non riesco a creare una tabella in un db ms access! -- Best regards, giorgio mailto:g.cl...@tiscali.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
Hello Daniele, Thursday, April 16, 2009, 4:30:38 PM, you wrote: DV> On Thu, 16 Apr 2009 16:23:56 +0200, simozack wrote: >> Il 16/04/09, Daniele Varrazzo ha scritto: >>> Non credo: in questo caso gli darebbe un errore Python, non ODBC. >> Traceback (most recent call last): >> File "C:\Python24\Lib\site-packages\WCronos.py", line 171, in DV> OnOkButton >>cur.execute("CREATE TABLE stm (\ >> dbi.program-error: [Microsoft][Driver ODBC Microsoft Access] Errore >> di sintassi nell'istruzione >> Dalla terza riga dell'errore (copincollato qui sopra per comodità), >> sembra che l'errore risieda nel fatto che venga passato come comando >> anche il \, che invece non ne deve fare parte. DV> Questo è il traceback python generato perché l'eccezione sollevata dal DV> driver odbc non viene intercettata, ma non è detto sia la causa DV> dell'errore in sé: è solo la riga di codice che l'ha generata. DV> Puoi provare ad eseguire un print dell'espressione nella query: noterai che DV> gli a-capo vengono eliminati ma nessun backslash viene passato al print nè DV> all'odbc. Infatti è la sintassi che uso normalmente con MySql... -- Best regards, giorgiomailto:g.cl...@tiscali.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
On Thu, 16 Apr 2009 16:23:56 +0200, simozack wrote: > Il 16/04/09, Daniele Varrazzo ha scritto: > >> Non credo: in questo caso gli darebbe un errore Python, non ODBC. > > Traceback (most recent call last): > File "C:\Python24\Lib\site-packages\WCronos.py", line 171, in OnOkButton >cur.execute("CREATE TABLE stm (\ > dbi.program-error: [Microsoft][Driver ODBC Microsoft Access] Errore > di sintassi nell'istruzione > > Dalla terza riga dell'errore (copincollato qui sopra per comodità), > sembra che l'errore risieda nel fatto che venga passato come comando > anche il \, che invece non ne deve fare parte. Questo è il traceback python generato perché l'eccezione sollevata dal driver odbc non viene intercettata, ma non è detto sia la causa dell'errore in sé: è solo la riga di codice che l'ha generata. Puoi provare ad eseguire un print dell'espressione nella query: noterai che gli a-capo vengono eliminati ma nessun backslash viene passato al print nè all'odbc. -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
Il 16/04/09, Daniele Varrazzo ha scritto: > Non credo: in questo caso gli darebbe un errore Python, non ODBC. Traceback (most recent call last): File "C:\Python24\Lib\site-packages\WCronos.py", line 171, in OnOkButton cur.execute("CREATE TABLE stm (\ dbi.program-error: [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi nell'istruzione Dalla terza riga dell'errore (copincollato qui sopra per comodità), sembra che l'errore risieda nel fatto che venga passato come comando anche il \, che invece non ne deve fare parte. Ciao, Simone ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
On Thu, 16 Apr 2009 15:55:25 +0200, simozack wrote: > La sintassi è la stessa. Qui il problema sta in come è impostata la > stringa in Python, visto che la \ non la devi mettere (infatti > l'errore sta in quello, se guardi bene). Non credo: in questo caso gli darebbe un errore Python, non ODBC. Simone ha usato una sintassi lecita: escape dell'end-of-line In [1]: print "ciao, \ ...: mondo" ciao, mondo Non è molto amata perchè è facile sbagliare: se c'è uno spazio dopo il backslash si ottiene un errore: qui c'è uno spazio v In [2]: print "ciao, \ mondo" File "", line 1 print "ciao, \ ^ : EOL while scanning single-quoted string Ma appunto è un erroer Python, non ODBC. -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
On Thu, 16 Apr 2009 15:18:40 +0200, giorgio wrote: >cur.execute("CREATE TABLE stm (\ >id int(2) NOT NULL auto_increment,\ >cod char(10) value '',\ cosa sono questi value '' ? Non mi sembrano validi. forse DEFAULT? Non sono neanche sicuro che in access una stringa vuota possa essere usata in un campo, a meno che non la ammetta esplicitamente... ma non tocco access da almeno 5 anni. In generale mi sembra una cattiva idea e userei dei NULL. >dattim char(8) value '',\ >causa char(4) value '',\ >ore char(4) value ' ',\ >causaex char(4) value '',\ >oreex char(4) value '',\ >nome char(30) value '',\ >PRIMARY KEY (id),\ qui c'è una virgola di troppo. ^^^ >)") Poi non so se ci sono altri problemi. -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e ms access
Il 16/04/09, giorgio ha scritto: > Ciao a tutti, > > > devo leggere e creare una tabella in un db esistente di ms access. > > Per leggere i dati: > > s = odbc.odbc('dbodbc')# mi collego al DSN > cur = s.cursor() > > cur.execute("select STORICO.COD_ANAG,STORICO.DAT_STOR,STORICO.COD_CAU1,\ > STORICO.THM_ORA_1,STORICO.COD_CAU2,\ > STORICO.THM_ORA_2,ANAG.DES_ANAG\ > from STORICO inner join ANAG on > STORICO.COD_ANAG=ANAG.COD_ANAG\ > where STORICO.DAT_STOR >= ? and STORICO.DAT_STOR <= ?\ > order by STORICO.COD_ANAG,STORICO.DAT_STOR",\ > (self.dtx_reg_ini,self.dtx_reg_fin,)) > rec = cur.fetchall() > > > recuperati i dati devo creare e popolare una tabella, sempre in ms access: > > > > #se esiste distrugge la tabella > try: > cur.execute("DROP TABLE stm") > except: > print "La tabella stm non esiste!" > #crea tabelle stm > cur.execute("CREATE TABLE stm (\ > id int(2) NOT NULL auto_increment,\ > cod char(10) value '',\ > dattim char(8) value '',\ > causa char(4) value '',\ > ore char(4) value ' ',\ > causaex char(4) value '',\ > oreex char(4) value '',\ > nome char(30) value '',\ > PRIMARY KEY (id),\ > )") > > > quì cominciano i problemi: > > 1- non distrugge la tabella stm, infatti esegue l'istruzione except > 2-lo script si arresta con il seguente errore: > Traceback (most recent call last): > File "C:\Python24\Lib\site-packages\WCronos.py", line 171, in OnOkButton >cur.execute("CREATE TABLE stm (\ > dbi.program-error: [Microsoft][Driver ODBC Microsoft Access] Errore di > sintassi nell'istruzione > CREATE TABLE. in EXEC > > > Qualcuno conosce la sintassi giusta per i comandi DROP e CREATE per i driver > ODBC per msaccess? La sintassi è la stessa. Qui il problema sta in come è impostata la stringa in Python, visto che la \ non la devi mettere (infatti l'errore sta in quello, se guardi bene). Prova a rompere le righe così: cur.execute("CREATE TABLE stm ( " "id int(2) NOT NULL auto_increment, " "cod char(10) value '', " "dattim char(8) value '', " "causa char(4) value '', " "ore char(4) value ' ', " "causaex char(4) value '', " "oreex char(4) value '', " "nome char(30) value '', " "PRIMARY KEY (id), " ")") Oppure con i triplici ": cur.execute("""CREATE TABLE stm ( id int(2) NOT NULL auto_increment, cod char(10) value '', dattim char(8) value '', causa char(4) value '', ore char(4) value ' ', causaex char(4) value '', oreex char(4) value '', nome char(30) value '', PRIMARY KEY (id), )""") HTH, Simone ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Python e ms access
Ciao a tutti, devo leggere e creare una tabella in un db esistente di ms access. Per leggere i dati: s = odbc.odbc('dbodbc')# mi collego al DSN cur = s.cursor() cur.execute("select STORICO.COD_ANAG,STORICO.DAT_STOR,STORICO.COD_CAU1,\ STORICO.THM_ORA_1,STORICO.COD_CAU2,\ STORICO.THM_ORA_2,ANAG.DES_ANAG\ from STORICO inner join ANAG on STORICO.COD_ANAG=ANAG.COD_ANAG\ where STORICO.DAT_STOR >= ? and STORICO.DAT_STOR <= ?\ order by STORICO.COD_ANAG,STORICO.DAT_STOR",\ (self.dtx_reg_ini,self.dtx_reg_fin,)) rec = cur.fetchall() recuperati i dati devo creare e popolare una tabella, sempre in ms access: #se esiste distrugge la tabella try: cur.execute("DROP TABLE stm") except: print "La tabella stm non esiste!" #crea tabelle stm cur.execute("CREATE TABLE stm (\ id int(2) NOT NULL auto_increment,\ cod char(10) value '',\ dattim char(8) value '',\ causa char(4) value '',\ ore char(4) value ' ',\ causaex char(4) value '',\ oreex char(4) value '',\ nome char(30) value '',\ PRIMARY KEY (id),\ )") quì cominciano i problemi: 1- non distrugge la tabella stm, infatti esegue l'istruzione except 2-lo script si arresta con il seguente errore: Traceback (most recent call last): File "C:\Python24\Lib\site-packages\WCronos.py", line 171, in OnOkButton cur.execute("CREATE TABLE stm (\ dbi.program-error: [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi nell'istruzione CREATE TABLE. in EXEC Qualcuno conosce la sintassi giusta per i comandi DROP e CREATE per i driver ODBC per msaccess? Grazie. giorgio ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python