Re: [Python] Python e ms access

2009-04-23 Per discussione giorgio
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

2009-04-23 Per discussione Enrico 'Henryx' Bianchi
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

2009-04-23 Per discussione Enrico 'Henryx' Bianchi
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

2009-04-23 Per discussione Enrico 'Henryx' Bianchi
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

2009-04-23 Per discussione giorgio
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

2009-04-23 Per discussione Marco Mariani
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

2009-04-23 Per discussione giorgio




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

2009-04-23 Per discussione Pietro Battiston
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

2009-04-23 Per discussione giorgio
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

2009-04-23 Per discussione Daniele Varrazzo
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

2009-04-23 Per discussione giorgio
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

2009-04-23 Per discussione Daniele Varrazzo
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

2009-04-23 Per discussione giorgio
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

2009-04-23 Per discussione giorgio
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-04-22 Per discussione Gian Mario Tagliaretti
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

2009-04-22 Per discussione Enrico 'Henryx' Bianchi
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

2009-04-22 Per discussione Antonio Fittipaldi
> ...
>  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

2009-04-22 Per discussione giorgio
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

2009-04-16 Per discussione giorgio
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

2009-04-16 Per discussione Daniele Varrazzo
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

2009-04-16 Per discussione simozack
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

2009-04-16 Per discussione Daniele Varrazzo
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

2009-04-16 Per discussione Daniele Varrazzo
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

2009-04-16 Per discussione simozack
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

2009-04-16 Per discussione giorgio
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