Python-it.org forum # share your knowledge! ;)
Agosto 31, 2014, 10:19 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizie: Novità: traduzione del blog "The History of Python" di Guido van Rossum: http://www.python-it.org/10/06/23/novit%C3%A0-traduzione-del-blog-the-history-python-di-guido-van-rossum
 
   Home   Guida Regolamento Ricerca Accedi Registrati Python-it.org Doc Chat  
Apri il forum in una pagina a parte - È possibile fornire/richiedere supporto anche presso i canali IRC #python su Azzurra e #python.it su Freenode

Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Database e python  (Letto 3092 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
Alessandro_Ghelfi
python erectus
***

Livello reputazione: 0
Alessandro_Ghelfi non ha alcuna influenza
Scollegato Scollegato

Messaggi: 195


Mostra profilo
« inserito:: Giugno 05, 2010, 18:03 »

Ho letto numerose guide su SQL ma non ho capito molto. Chiedo aiuto a voi.

Uso un programma creato da me in Visual Dbase Plus basato sui database DBF.
Vorrei riscrivere questo programma con Python.
Come posso fare?

Il mio problema è creare dei Notebook o delle Grid abbinate ai valori dei database, non solo per leggere i dati, ma anche per modificarli direttamente dal control di Python.

In Visual Dbase Plus c'è una classe apposta che si chiama Grid, alla quale si associa il file DBF tramite comandi in SQL e mi restituisce una griglia dalla quale posso modificare i dati del dbf.
Si può fare la stessa cosa con Python? Grazie MILLE!!
Registrato
Python-it.org forum
« inserito:: Giugno 05, 2010, 18:03 »

 Registrato
riko
moderatore
python deus
*

Livello reputazione: 1
riko non ha alcuna influenza
Scollegato Scollegato

Messaggi: 6033



Mostra profilo WWW
« Risposta #1 inserito:: Giugno 05, 2010, 23:52 »

definisci "la stessa cosa".
Registrato

Bakuriu
python sapiens sapiens
******

Livello reputazione: 0
Bakuriu non ha alcuna influenza
Scollegato Scollegato

Messaggi: 2267

Katon, Goukakyuu no jutsu!


Mostra profilo WWW
« Risposta #2 inserito:: Giugno 06, 2010, 11:22 »

Probabilmente in python non puoi fare le cose esattamente allo stesso modo, ma puoi modificare il database in modo diverso...
Registrato

>>> from __future__ import barry_as_FLUFL
Alessandro_Ghelfi
python erectus
***

Livello reputazione: 0
Alessandro_Ghelfi non ha alcuna influenza
Scollegato Scollegato

Messaggi: 195


Mostra profilo
« Risposta #3 inserito:: Giugno 07, 2010, 08:40 »

Mi chiedi di definire la "stessa cosa" ? Ti invito a rileggere la stessa frase.

Citazione
In Visual Dbase Plus c'è una classe apposta che si chiama Grid, alla quale si associa il file DBF tramite comandi in SQL e mi restituisce una griglia dalla quale posso modificare i dati del dbf.

La mia domanda è se esiste una classe in Python che mi permette di creare una Grid collegata ad un database (possibilmente DBF). Dalla Grid, vorrei poter leggere, scrivere, o modificare i dati del database. Se la cella  (x esempio A1:F2) contiene il valore "10,00 €" corrispondente al 5°record del campo "PREZZO" del mio database, e sostituisco il valore nella cella della mia classe Grid con "9,00 €", la classe deve in automatico modificare e salvare il nuovo valore nel database.

Come quando si gestisce un foglio di calcolo con OpenOffice.calc o Excel. Solo che invece di lavorare su fogli di Excel, vorrei lavorare allo stesso modo su database.
Grazie
Registrato
riko
moderatore
python deus
*

Livello reputazione: 1
riko non ha alcuna influenza
Scollegato Scollegato

Messaggi: 6033



Mostra profilo WWW
« Risposta #4 inserito:: Giugno 07, 2010, 09:26 »

Invita pure, ma non era chiaro. Nella fattispecie era possibile che tu volevi ottenere quel comportamento "accettando" di comporre alcune classi, oppure volevi la classe gia' pronta.

Ci sono classi del genere dentro Qt, ma, verosimilmente e fortunatamente sono classi di view, non di spaghetti code. Questo vuole dire che verosimilmente avrai un paio di classi, una parte del model che ti incapsula il DB ed SQL e una nella view che fa quello che dici parlando con quest'ultima.
Se poi hanno messo anche la classe spaghettosa full-stack, dovrei controllare. Ma non ne vedo l'esgenza.
Registrato

Alkatron
Utente non iscritto
« Risposta #5 inserito:: Settembre 09, 2010, 19:46 »

Anche io sto riscrivendo un mio vecchio programma che usa i dbf, fatto addirittura in clipper (beata gioventu).

Alla fine ho adottato la soluzione di importare tutti gli archivi in mysql, tanto ci sara un momento in cui switcherai dal vecchio al nuovo e, a meno che tu non abbia altri programmi che usano gli stessi archivi dbf, non ci saranno problemi.

Ciao

P.S. Ho provato ad impelagarmi a cercare di gestire i dbf con python mi è passata subito la voglia...meglio mysql
« Ultima modifica: Settembre 09, 2010, 19:49 da Alkatron » Registrato
riko
moderatore
python deus
*

Livello reputazione: 1
riko non ha alcuna influenza
Scollegato Scollegato

Messaggi: 6033



Mostra profilo WWW
« Risposta #6 inserito:: Settembre 09, 2010, 21:13 »

P.S. Ho provato ad impelagarmi a cercare di gestire i dbf con python mi è passata subito la voglia...meglio mysql

Vuoi dire che i DBF hanno come feature la possibile perdita dei dati?  devil devil
Perche' mysql la ha come bug... per fare peggio, deve proprio essere una feature!  angel
Registrato

Alessandro_Ghelfi
python erectus
***

Livello reputazione: 0
Alessandro_Ghelfi non ha alcuna influenza
Scollegato Scollegato

Messaggi: 195


Mostra profilo
« Risposta #7 inserito:: Settembre 10, 2010, 09:54 »

Il mio problema è proprio questo, dover gestire gli stessi archivi dbf da due programmi diversi, uno che sto scrivendo il Python e l'altro da Visual Dbase.

Gli Archivi Dbf, che uso da decenni, non mi hanno mai fatto perdere un dato. Si può dire lo stesso di Firebird? o MySQL?
Registrato
riko
moderatore
python deus
*

Livello reputazione: 1
riko non ha alcuna influenza
Scollegato Scollegato

Messaggi: 6033



Mostra profilo WWW
« Risposta #8 inserito:: Settembre 10, 2010, 11:06 »

Di MySQL no. wink
Registrato

Vonkes
python unicellularis
*

Livello reputazione: 0
Vonkes non ha alcuna influenza
Scollegato Scollegato

Messaggi: 13


Mostra profilo
« Risposta #9 inserito:: Giugno 30, 2011, 18:52 »

Ciao  a tutti coloro che hanno partecipato a questa discussione. Anche se alla medesima da oltre 120 giorni nessuno ha fatto più riferimento per me diviene importante e quindi espongo quanto segue: Anche io ho provato a utilizzare sia i file in formato di base sia in altri formati ma non mi pare che esista una classe che prendendo un singolo nuovo valore da una griglia che rappresenta la visualizzazione dei contenuti dei record lo immette nel  tuo DB realizzando così L'aggiornamento  del record. Io all'interno della classe che mi consente la visualizzazione dei record tra le tante funzioni o metodi ne ho scritto uno che cliccando sulla  casella contenente il valore che vuoi sostituire con uno nuovo. ti consente di sostituire il vecchio valore con quello nuovo. dopo di che apre il file che contiene il record da aggiornare lo aggiorna e poi restituisce il controllo alla griglia dopo aver rilasciato un messaggio che il record interessato è stato aggiornato. se interessa a posso postare l'intero metodo fornendo le spiegazioni del caso.
Vonkes.
Registrato

 vonkes vecchio clipparolo giovane pythoniano

Alessandro_Ghelfi
python erectus
***

Livello reputazione: 0
Alessandro_Ghelfi non ha alcuna influenza
Scollegato Scollegato

Messaggi: 195


Mostra profilo
« Risposta #10 inserito:: Luglio 06, 2011, 17:13 »

Ti ringrazio, ma a suo tempo ho realizzato proprio  la stessa cosa.
Sotto questo aspetto, cioè la gestione dei database,  python mi sembra sia più indietro di altri linguaggi.
In Visual Dbase, la modifica di un record  avviene seduta stante. Modifichi un dato da una semplice classe tipo la wx.ListCtrl, ed immediatamente la modifica del record viene salvata nel database. Qui invece è più macchinoso.
Probabilmente Visual Dbase è nato per gestire in modo semplificato gli archivi dBase.
Registrato
RicPol
python sapiens sapiens
******

Livello reputazione: 0
RicPol non ha alcuna influenza
Scollegato Scollegato

Messaggi: 1282


Mostra profilo
« Risposta #11 inserito:: Luglio 06, 2011, 17:48 »

Citazione
Sotto questo aspetto, cioè la gestione dei database,  python mi sembra sia più indietro di altri linguaggi.
Uhm... più probabilmente l'opposto, o comunque ce la giochiamo alla pari.
Se dalle parti di java (per non parlare di php o vb) avessero uno strumento come sqlalchemy, proclamerebbero la dimostrazione dell'IA forte, farebbero feste con fuochi d'artificio, conferenze stampa, ottocento seminari, venti libri all'anno per dieci anni.

Ma quello che stai cercando tu non è "uno strumento per la gestione dei db", è un RAD che permetta di creare e gestire rapidamente interfacce GUI collegate a db. E' una cosa molto ma molto diversa. Personalmente credo che il miglior prodotto di questo tipo mai apparso sulla faccia della terra, valutati i pro e i contro, sia Access. Però ciascuno ha i suoi.

Se cerchi un prodotto di questo tipo, allora hai senz'altro ragione. Il fatto è che Python come linguaggio si conforma poco ai RAD, per tutta una serie di ragioni. E, di conseguenza, la comunità Python ha sempre investito poco nello sviluppo di questi strumenti.
Di recente mi sembra che Django abbia un po' rimescolato le carte, con un approccio più fresco al tema di implementare la catena db -> orm -> gui in ambito web.
Puoi provare Camelot, che si ispira a Django (ma restando in ambito desktop) ed è basato sulle qt, sqlalchemy e non so quale db (forse è multi-db). Io non l'ho mai guardato, ma mi sembra valga la pena.
Comunque non è uno di quei software dove per disegnare la gui trascini col drag and drop un text control dalla toolbox al layout.

Registrato
riko
moderatore
python deus
*

Livello reputazione: 1
riko non ha alcuna influenza
Scollegato Scollegato

Messaggi: 6033



Mostra profilo WWW
« Risposta #12 inserito:: Luglio 07, 2011, 00:07 »

ottimo spunto RicPol! quoto tutto.

Aggiungo uno spunto: se hai un linguaggio macchinoso, dove ogni funzionalita' richiede molte linee di codice, potere fare la stessa cosa con pochi click e' un grosso vantaggio. In generale si sta rinunciando a estendibilita' del codice, ma alla fine non si puo' avere tutto.

Se hai un linguaggio che con tre linee di codice e un'architettura decente ti da la stessa cosa,t l'interesse per un tool (da qualche migliaio di righe di codice per funzionalita' che auto-genera) e' decisamente minore. Il codice rimane piu' estendibile: perdi solo un minimo di immediatezza.

Aggiungo che in Python non c'e' dietro un'azienda che fa soldi con i rad: timidi tentativi sono falliti. troppo poco il vantaggio competitivo. spiace per i programmatori abituati ad altri ambienti: this is unix on steroids, not windows for androids.
Registrato

Snake Plissken
python unicellularis
*

Livello reputazione: 0
Snake Plissken non ha alcuna influenza
Scollegato Scollegato

Messaggi: 34



Mostra profilo
« Risposta #13 inserito:: Luglio 07, 2011, 13:39 »

Qualcosa però comincia a muoversi anche per Python: SqlKit fa cose simili. Ne hanno parlato a EuroPython e non mi è sembrato male.
Registrato

Seconda Legge di Golub
La realizzazione di un progetto mal pianificato richiede il triplo del tempo previsto;
quella di un progetto pianificato con la massima attenzione solo il doppio.
Vonkes
python unicellularis
*

Livello reputazione: 0
Vonkes non ha alcuna influenza
Scollegato Scollegato

Messaggi: 13


Mostra profilo
« Risposta #14 inserito:: Luglio 27, 2011, 13:20 »

Caro Alessandro  DBIII, CLIPER,FOXPRO,  ecc ecc  fino ad arrivare a VISUALDBASE sono applicazioni o procedure o programmi, Chiamali come ti pare, che sono stati studiati per gestire Informazioni archiviate in file ( di testo ____ cioe' gestibili  con open modalità r, w, a, + e dove le informazioni sono in chiaro salvo  l'intestazione del db e la gestione dei campi che usano una codifica  dei caratteri ascii da 0 a 32  0 - FF in formato esadecimali.) Con dette procedure tu puoi creare inserire modificare aggiornare file solo in quel formato non esistono o meglio non esistevano allora [anni 82 anni 90] driver che ti consentissero di gestire informazioni archiviate in formato diverso da quello originale DBIII   o Dbase che dir si voglia. Con DBIV si era già provato a leggere File in formato Oracle cioè una volta avute le informazioni poi venivano trattate come la procedura era stata realizzata ( quindi con le opportune query le set realtion per mettere in relazioni i vari file e gli indici per la ricerca o la organizzazione delle informazioni) una volta effettuata questa operazione si procedeva alla riscrittura su disco dei record  formattandoli come l'archivio (o Tabelle) erano state preparate cioè Formato DBASE, FORMATO DBIV, Formato Oracole-. Erano queste stesse procedure che consentivano la Visione dei record a Video o su carta e che permettevano la modifica, aggiornamento dei record. Con la procedura Visuale si aveva una griglia molto simile ad un foglio elettronico sia esso formato Exel, Open Office, Lotus ecc ecc e gli aggiornamenti
avvenivano in maniera automatica interpretando, La procedura, la volontà dell'utente che una volta introdotta una modifica questa DOVESSE ESSERE RECEPITA IMMEDIATAMENTE IN ARCHIVIO.  Se trattavasi di informazioni numeriche  la procedura si occupava anche di aggiornare le eventuali colonne correlate a quella in cui era avvenuta la modifica.
Tutta questa lunga chiaccherata per dirti solamente che quelle procedure erano studiate per gestire solo i Database e solo di un certo tipo.
Python diversamente è un linguaggio che tu puoi adattare a tutte le tue esigenze sia di calcolo, sia di di gioco, sia per fare del gestionale, sia per creare delle Gui sia per fare della musica e chi più ne ha più ne meta.
Le interfacce grafiche come wxPython  , Qt ed altre possono consentirti la visualizzazione in formato griglia ma lasciano poi al programmatore il compito di adattarle alle proprie esigenze come per esempio per i DB l'aggiornamento dei record in funzione delle tabelle che usano; per esempio esistono i Driver per MySQL, Oracle, MSSQL, SQLLite  ecc esistono anche per DBIII ma questiultimi ti consentono di scrivere modificare aggiornare il vecchio Formato DBIII non consentono l'uso dei memo, cioè devi scriverti tu un metodo apposta. Non esiste la possibilità di mettere in relazione le varie tabelle, non esiste la possibilità di applicare il linguaggio sql. Tutto ciò sicuramente non dipende da python ma solamente da chi ha voluto scrivere i driver.
Morale se tu hai necessità di avere le stesse informazioni sia in formato di base che gestisci con VisualDbase   sia in altro formato che vuoi gestire con Python devi verificare se esistono delle procedure compatibili per esempio sqlalchemy  se invece vuoi gestire le stesse informazioni formato dBase anche da python allora devi cercare le griglie sia usando wxPython, o Qt, ma poi dovrai integrarle con tutto quello che ti serve per gestire totalemte le informazioni delle tue tabelle e potrai forse renderti conto   chi ti soddisfa maggiormente. Per esempio superando certi limiti posti dal Dbase le cui colonne inizialmente non potevano avere una intestazione maggiore di 10 caratteri, potrai rendere i campi numerici incrementali a partire da un valore definito dall'utente, potrai se vorrai proteggere ogni tabella con una passwprd, potrai se vorrai critografare i record singolarmente ecc ecc.
Tutte queste cose sicuramente il VisualDbase non te lo permette ma forse non ne hai nemmeno bisogno. Io per mio sfizio le ho realizzate .
Ciao Vonkes 
Registrato

 vonkes vecchio clipparolo giovane pythoniano

Python-it.org forum
   

 Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines XHTML 1.0 valido! CSS valido!