Italian community of Lazarus and Free Pascal

Programmazione => Databases => Topic aperto da: antoniog - Febbraio 18, 2013, 10:50:48 pm

Titolo: Tdbf - non sarà più supportato?
Inserito da: antoniog - Febbraio 18, 2013, 10:50:48 pm
una mesta domanda:
Tdbf non sarà più supportato dal team .... significa che questo componente sparirà in una prossima versione di lazarus e non sarà più possibile usarlo?
Vorrei convertire dei gestionali, scritti con delphi 4, per funzionare in Linux e Windows e questo lo già appreso, ma non vorrei fra qualche mese dover ricominciare da capo, le tabelle .DBF sono state costruite con Database desktop, ci sono archivi di anni che assolutamente non posso perdere, è possibile il loro utilizzo in Lazarus per esempio con SQLite?
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: nomorelogic - Febbraio 18, 2013, 11:17:51 pm
ciao antonio
non supportato di solito non vuol dire deprecato; certo è che se un giorno dovesse smettere di funzionare per un qualsiasi motivo (ad esempio come siamo messi con unicode?) difficilmente ti troveresti a poterlo utilizzare.
Se il porting non è ancora iniziato la soluzione è abbastanza semplice: scegliere un dbrms come firebird, postgres, mysql, oracle o qualcosa del genere e procedere con la conversione dei vecchi archivi.
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: antoniog - Febbraio 18, 2013, 11:30:06 pm
si certo, grazie. il problema è che tutto quello offerto da sql..  non mi serve e bisogna scrivere del codice mentre con Tdbf i dati sono subito utilizzabili. Si può usare un 'SQLtable' il cui database è una directory?
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: antoniog - Febbraio 19, 2013, 06:40:22 pm
purtroppo se vorrò continuare con linux e lazzarus dovrò provare a seguire il tuo consiglio, Tdbf non funziona bene, se metto gli indici dà un errore di 'access violation'.
Hai qualche dritta da darmi su cosa usare: mySql .....
Grazie
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: nomorelogic - Febbraio 19, 2013, 07:52:01 pm
Tdbf è a rischio per il futuro perchè già oggi si basa su una tecnologia obsoleta.
Se devi riscrivere un progrogramma o fare un porting non credo sial il caso di iniziare il lavoro in queste condizioni. E' vero che certi concetti li hai più familiari con i DBF ma fidati che oggi non c'è alcun motivo per usare quel tipo di "data base": usare un db sql può essere semplice tanto quanto usare i dbf; in più, una volta presa mano, hai tutta una serie di vantaggi che con i dbf ti sogni.

Per applicazioni monoutente forse il più pratico è SqlLite.
Però ti consiglierei Firebird o Postgres: in questo modo monoutente o multiutente perdono di significato.
Senza contare che il mondo pascal è pieno di documentazione con questi db.
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: antoniog - Febbraio 19, 2013, 09:12:47 pm
grazie per la risposta. Ho provato a documentarmi ma la difficoltà è che con windows c'è un file di installazione che fà tutto mentre con linux la cosa mi è incerta, sembrerebbe che serva solo lo scompattamento dell'archivio così come organizzato nel file compresso, è così? tutto quello che ho provato richiede una connessione ad un provider, una username, la password ed altri in aggiunta: host, porta, schema, database, ma cosè tutta questa roba per gestire un database? la multiutenza lo sempre gestita da prg con due campi aggiuntivi nella tabella. Mi sembra che la globalizzazione ci faccia sfuggire il senso delle cose che possono anche essere piccole o personali.
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: Stilgar - Febbraio 19, 2013, 09:45:15 pm
Antoniog ... lasciando perdere l'ultima frase che mi confonde.
Hai provato a vedere semplicemente SQLite? http://www.sqlite.org/download.html
Questa è solo una libreria dinamica caricata dall'applicativo.
L'Engine SQL è minimale.

Stilgar
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: Stilgar - Febbraio 19, 2013, 09:46:49 pm
Poi ti consiglio di abbinare l'uso della liberia ZeosDB all'uso di SQLite o altri.

Stilgar
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: antoniog - Febbraio 19, 2013, 10:46:41 pm
grazie della tua cortesia,
ho guardato un pò tutto e il mio problema al momento è questo:
"Requested database driver was not found"
e
"Can't find active connection"
ho installato nella ide di lazarus, zeoslib 7.0.6, sqllitePassDbo, sqlite3DS e ho fatto molte prove senza successo.
Bisogna installare un runtime (scusa il linguaggio arcaico), un motore sql?
ho installato 'tora' lanciandolo esce il msg 'no available connection provider'
Ho provato Lazarus database desktop, mi sembra interessante, ma dopo avere importato le tabelle da una directory non sò più cosa fare. penso di dovere fare una 'connection' ma a cosa? Mi si chiede: Host (non credo valga la traduzione letterale), database, username, passwd, charset, e mi blocco.
Penso di avere fatto molta confusione. mi servirebbero istruzioni semplici, come fatte ad un bambino, per il più semplice dei sistemi sql.
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: antoniog - Febbraio 19, 2013, 11:12:39 pm
penso che il problema stia nella connessione, questo è un'altro messaggio di errore:
Unable to find the component class "TMSSQLConnection".
come installare questo componente?
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: Stilgar - Febbraio 20, 2013, 01:40:38 am
Si ... confusione tanta ... da quello che leggo.
Tora? Ma hai scaricato un connettore per Oracle? Alla faccia del lavoro domestico.
cmq:
Host: Macchina/Server su cui trovare il database. Il valore localhost va più che bene per il tuo pc. Viene riconosciuto dal sottosistema dei sistemi operativi come nome "speciale" e convertito al bisogno con l'ip del tuo pc.
CharSet, lascialo vuoto. Usa i suoi default.

Se vuoi una cosa semplice semplice semplice, usa SQLite.
Gli altri motori sql sono un attimino più avanzati e hanno bisogno di essere studiati.
Nomore con Firebird o Posgress ci condirebbe anche l'insalata ;)
E' una dll che deve essere copiata all'interno della cartella
1)dove hai lazarus.exe
+
2) Dove andrà a essere eseguito il tuo programma.exe
La prima serve per fare in modo che la libreria ZeosDb possa agganciala all'interno dell'ide (Lazarus) e farti vedere i dati.
La seconda servità al tuo programma quando lo lancerai.

Se è per un database alla TDBF SQLite può farti avvicinare rapidamente al mondo SQL.
La differenza è che non è una struttura ISAM (tabella=file per capirci) ma è un unico file con tutti i suoi dati dentro.
Stilgar
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: nomorelogic - Febbraio 20, 2013, 12:49:45 pm
penso che il problema stia nella connessione, questo è un'altro messaggio di errore:
Unable to find the component class "TMSSQLConnection".
come installare questo componente?

si c'è da fare un po' di chiarezza.
TMSSQLConnection è per la connessione a Ms Sql Server, non credo che ti serva

iniziamo dal principio:
- lavori sotto win o sotto linux?
- devi scegliere un database con cui iniziare a lavorare: dalla tua scelta dipende poi quali componenti usare
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: antoniog - Febbraio 20, 2013, 03:58:46 pm
sul mio computere ho tre sistemi operativi: windows xp prof, mint 13- 32b, mint 13- 64b. dalle prove che ho fatto con Lazarus non vi sono molte difficoltà a trasferire i programmi scritti dal un sistema all'altro. Vorrei lavorate con mint 64bit.
Ieri ho scaricato un bel pò di pacchetti tra i quali Firebird e FlameRobin ma non ho capito come si installano, poi ho avuto la fortuna di imbattermi in 'kexi' che ha una bella e funzionale interfaccia grafica, così ho realizzato il mio primo database multi tabella, la cosa fantastica e che posso importare tutti i dati delle mie vecchie tabelle.dbf salvati in .cvs; su Lazarus ho installato Sqlite3 e Zeos, Sqlite3 funziona ma vorrei capire come indicizzare la tabella su un campo 'text' che riordini subito i dati; Zeos: ho messo sulla form Zconnection ho collegato il database con protocollo sqlite-3 che è l'unico che funziona, e Ztable dove ho scelto la tabella. Attivando Ztable però tutti i campi compaiono con (memo) e non sono modificabili. ancora un piccolo aiuto e, forse, ci riesco.
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: nomorelogic - Febbraio 20, 2013, 07:43:09 pm
sul mio computere ho tre sistemi operativi: windows xp prof, mint 13- 32b, mint 13- 64b. dalle prove che ho fatto con Lazarus non vi sono molte difficoltà a trasferire i programmi scritti dal un sistema all'altro. Vorrei lavorate con mint 64bit.

bene anche io lavoro su linuxmint 13 x64


Ieri ho scaricato un bel pò di pacchetti tra i quali Firebird e FlameRobin ma non ho capito come si installano

per firebird verifica che installi almeno la 2.5; su windows si installa con un setup, su linuxmint hai il gestore pacchetti
per il funzionamento con lazarus e zeos puoi partire da quà
http://www.lazaruspascal.it/index.php?page=85 (http://www.lazaruspascal.it/index.php?page=85)



poi ho avuto la fortuna di imbattermi in 'kexi' che ha una bella e funzionale interfaccia grafica, così ho realizzato il mio primo database multi tabella, la cosa fantastica e che posso importare tutti i dati delle mie vecchie tabelle.dbf salvati in .cvs; su Lazarus ho installato Sqlite3 e Zeos, Sqlite3 funziona ma vorrei capire come indicizzare la tabella su un campo 'text' che riordini subito i dati;


Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: antoniog - Febbraio 20, 2013, 10:47:03 pm
la situazione si complica.
Tu dici che devo usare varchar(lunghezzamassima) ma io non lo trovo, lo visto da qualche parte ma non ricordo dove. Per l'interfaccia  database stò usando 'Kexi', tu cosa usi? - kexi fornisce per i campi solo queste opzioni:text, integer, floating point, yes/no, date/time, object. ho installato 'Firebird 2.5.2', sono sicuro che è installato (./configure-make-sudo make install), e ora cosa faccio? cè un'interfaccia grafica per firebird? - da vecchio (molto vecchio) smanettone sono confuso.
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: nomorelogic - Febbraio 21, 2013, 08:19:06 am
Tu dici che devo usare varchar(lunghezzamassima) ma io non lo trovo, lo visto da qualche parte ma non ricordo dove. Per l'interfaccia  database stò usando 'Kexi', tu cosa usi? - kexi fornisce per i campi solo queste opzioni:text, integer, floating point, yes/no, date/time, object.

kexi purtroppo non lo conosco bene, ho letto qualcosa un po' di tempo fa ma non l'ho mai usato.
Comunque sia se hai solo "text" per definire campi alfanumerici potrebbe anche darsi che per kexi un text è un varchar. Per accertartene, una volta creato un database, potresti trovare una interfaccia grafica per la gestione e verificare come è stata creata la tabella interrogando la frase DDL generata da kexi.
kexi se non ricordo male permette di definire anche la gui utente vero?


ho installato 'Firebird 2.5.2', sono sicuro che è installato (./configure-make-sudo make install), e ora cosa faccio? cè un'interfaccia grafica per firebird? - da vecchio (molto vecchio) smanettone sono confuso.

se l'hai installato con make potrebbe anche darsi che ti sei fermato alla compilazione ma il servizio non è ancora partito.
In questo caso su usi win puoi vedere se tra i servizi trovi FisebirdServer e FirebirdGuardian in esecuzione. Sotto linux devi cercare i processi fbserver e fbguardian.
Puoi anche testare il servizio con: telnet 127.0.0.1 3050

Per firebird sotto windows l'interfaccia grafica migliore è senza dubbio IBExpert (c'è anche la versione personal che è free); Flame Robin invece è disponibile sia per win che per linux.
Ricorda che appena installato puoi accedere solamente come:
una delle prime cose che devi imparare a fare è cambiare la password di SYSDBA e per questo puoi usare una qualsiasi interfaccia grafica o, se si va di smanettare ed accedi al server con ssh, nella cartella bin ci sono un sacco di utilità a linea di comando.


Edit:
se usi linux e firebird non è partito, nella cartella bin, come root puoi lanciare fbguardian.
Poi devi trovare il modo di farlo partire all'accensione del sistema ;)
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: antoniog - Febbraio 21, 2013, 05:20:03 pm
firebird non si è installato, eppure ho scaricato i sorgenti della 2.5.2, li ho scompattati, sono entrato nella cartella e eseguito i comandi ./configure, make e sudo make install. - Con Zeos ho messo sulla form 'TZConnection' e 'TZTable' ma come ti ho detto mi visualizza tutti i campi come (memo), ho compilato il progetto con l'opzione 'vedi tutto' e il compilatore non trova -nulla- che si riferisca a Zeos e FireBird.
Ho RISOLTO usando TSQLite3Dataset:
ho costruito il Database con 'Kexi' ho importato 5 tabelle da file esistenti salvati in '.cvs', nel 'Filename' di TSQLite3Dataset ho cercato il 'Database.Kexi', 'Tablename' <nome tabella>, in 'SQL' l'istruzione 'SELECT * FROM nometabella  ORDER BY <campo>', 'SaveOnClose ' e 'saveOnrefresh' settati su True, tutto funziona, gestisco le tabelle che sono indicizzate sul campo voluto. Col tempo proverò Firebird e Zeos.
Grazie per l'aiuto.
Titolo: Re:Tdbf - non sarà più supportato?
Inserito da: antoniog - Febbraio 23, 2013, 09:30:38 pm
Non sono riuscito ad autlizzare ProsgreSQL e Firebird, vedro in seguito, ed allora ho seguito il consiglio di Stilgar
"Poi ti consiglio di abbinare l'uso della liberia ZeosDB all'uso di SQLite o altri. "
ho fatto così!
Ho installato SQLite database browser, ho creato il database e le tabelle le ho importate da file .cvs precedentemente creati da tabelle DBF, per ciascuna tabella ho aggiunto un campo di Primary Key univoco, poi ho aggiunto l'indice   che mi serviva su un campo estistente.
Nel progetto ho creato un modulo dati, utilizzando Zeos 7.0.3,  ho inserito nel modulo dati  TZconnection e Tztable, ho fatto tutti i collegamenti, in TZtable ho messo il mio indice vero, nell'edita campi, di TZtable, selezionato 'mioIDXunivoco' in KeyFields: <nome key univoco>.
poi ho inserito il codice nel DBNavigator1Click:

TSottoGF.DBNavigator1Click(Sender: TObject; Button: TDBNavButtonType);
begin
  case Button of
         nbPost :  ModuloDati.TZtable.ApplyUpdates;     
         nbDelete : ModuloDati.TZtable.ApplyUpdates;
    end;

end;   
e sembra che tutto funzioni.