Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027

    Connessione ODBC a db access in locale

    Ciao, devo modificae un file access su un computer che non ha office.

    Siccome è un'operazione banale (è un update su una tabella) volevo connettermi tramite ODBC ad access e fare l'update tramite uno script python.

    Ricordo che tempo fa avevo fatto la stessa cosa e sul pc (con windows 98) avevo creato una connessione ODBC al db access per poterlo usare.

    Ora dovrei fare delle prove prima di usare lo script e sto lavorando su windows xp.

    Sinceramente non ricordo come avevo fatto sul pc con windows 98 e non ho la più pallida idea di come creare questa connessione su windows xp.

    Sapete darmi una mano?
    grazie

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    ovviamente subito dopo aver scritto ho trovato la soluzione

    Se dovesse servire a qualcuno:

    http://server.html.it/articoli/leggi...nessione-odbc/


  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027

    [PYTHON] Eseguire UPDATE su tabella

    Ciao ragazzi, spero possiate aiutarmi.

    Sto cercando di fare un'update di una tabella access tramite python.

    Questo il codice che ho scritto:

    codice:
    import win32com.client
    conn = win32com.client.Dispatch(r'ADODB.Connection')
    DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:/VLEURANA.mdb;'
    conn.Open(DSN)
    
    rs = win32com.client.Dispatch(r'ADODB.Recordset')
    rs_name = 'Clienti'
    rs.Open("SELECT * FROM "+rs_name+" WHERE PIva <> '' AND CF = ''", conn)
    print rs.RecordCount;
    count = 0
    while 1:
     if rs.EOF:
       break
     else:
       count = count+1
       print "*"+str(count)+"*"
       #print "Societa :"+str(rs.Fields.Item('Denom').Value)
       #print "Partita IVA :"+str(rs.Fields.Item('PIva').Value)
       #print "Codice Fiscale:"+str(rs.Fields.Item('CF').Value)
       #print "**"
       #print str(count)+")"+str(rs.Fields.Item('CF').Value);
       sql = "UPDATE "+rs_name+" SET CF='"+ str(rs.Fields.Item('PIva').Value)+"' WHERE  PIVA='"+str(rs.Fields.Item('PIva').Value)+"'";
       conn.Execute(sql)
       rs.MoveNext();
    Ho provato in diversi modi da questa mattina (anche con ODBC), ma senza successo.

    In pratica (a volte dopo 20 update, a volte dopo 1 solo), mi compare la finestra di windows che dice che python2.5 ha eseguito un'operazione errata (la classica finestra di crash).

    Vedete qualcosa che non va?
    Grazie

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027

    Re: [PYTHON] Eseguire UPDATE su tabella

    Originariamente inviato da gianiaz
    Ciao ragazzi, spero possiate aiutarmi.

    Sto cercando di fare un'update di una tabella access tramite python.

    Questo il codice che ho scritto:

    codice:
    import win32com.client
    conn = win32com.client.Dispatch(r'ADODB.Connection')
    DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:/VLEURANA.mdb;'
    conn.Open(DSN)
    
    rs = win32com.client.Dispatch(r'ADODB.Recordset')
    rs_name = 'Clienti'
    rs.Open("SELECT * FROM "+rs_name+" WHERE PIva <> '' AND CF = ''", conn)
    print rs.RecordCount;
    count = 0
    while 1:
     if rs.EOF:
       break
     else:
       count = count+1
       print "*"+str(count)+"*"
       #print "Societa :"+str(rs.Fields.Item('Denom').Value)
       #print "Partita IVA :"+str(rs.Fields.Item('PIva').Value)
       #print "Codice Fiscale:"+str(rs.Fields.Item('CF').Value)
       #print "**"
       #print str(count)+")"+str(rs.Fields.Item('CF').Value);
       sql = "UPDATE "+rs_name+" SET CF='"+ str(rs.Fields.Item('PIva').Value)+"' WHERE  PIVA='"+str(rs.Fields.Item('PIva').Value)+"'";
       conn.Execute(sql)
       rs.MoveNext();
    Ho provato in diversi modi da questa mattina (anche con ODBC), ma senza successo.

    In pratica (a volte dopo 20 update, a volte dopo 1 solo), mi compare la finestra di windows che dice che python2.5 ha eseguito un'operazione errata (la classica finestra di crash).

    Vedete qualcosa che non va?
    Grazie
    mi sembra di aver capito che alcuni record del db contengano qualcosa che non piace a python, secondo voi come posso fare per catchare questi errori e saltare al record successivo?

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477

    Moderazione

    Ricordo che il linguaggio va indicato anche nel titolo, come da Regolamento.

    Qui l'ho aggiunto io.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    mi sembra di aver capito che alcuni record del db contengano qualcosa che non piace a python, secondo voi come posso fare per catchare questi errori e saltare al record successivo?
    Un blocco try/except attorno alla chiamata che solleva l'eccezione?
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.