* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Maggio 17, 2024, 04:07:11 pm

Inserisci il nome utente, la password e la durata della sessione.

613 Visitatori, 2 Utenti
 

Autore Topic: Da DBF a SQLite - da Delphi4 a Lazarus 1.0.6  (Letto 2689 volte)

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Da DBF a SQLite - da Delphi4 a Lazarus 1.0.6
« il: Giugno 06, 2013, 10:40:15 pm »
Utilizzando ormai per il  90% del mio lavoro Linux Mint ho voluto convertire un vecchio progetto, con molti archivi da non perdere, ancora attuale scritto in Delphi4 (che utilizza tabelle DBF) in Lazarus con l'utilizzo tabelle SQLite.
Inizialmente ho pensato di trasformare le tabelle DBF in CVS utilizzando programmi scaricabili dal web come DBF Viewer Plus scaricabile da : http://www.alexnolan.net/software/ , oppure con LibreOffice Calc ma non tutte le tabelle veniva lette correttamente, quelle lette correttamente e salvale in CVS avevano il nome dei campi modificati, per esempio il campo "codice" veniva rinominato in "codice_C_60" il che mi costringeva a riscrivere tutte le procedure che utilizzavano le tabelle e poi importando la tabella in un database SQLite bisognava aggiungere il campo 'INTEGER PRIMARY KEY' e cambiare il TIPO dei campi per poterli utilizzare correttamente sotto Lazarus, quindi ho abbandonato l'idea e ho deciso di ricreare le tabelle direttamente sotto SQLite.
Perche SQLite e non ProsgreSQL o FlameRobin o MySQL? Perchè SQLite non è complicato e non richiede null'altro che: sotto Linux l'installazione tramite la 'gestione pacchetti', sotto Window lo scaricamento e la copia di sqlite.Dll (sqlite3.dll) nella directory di lavoro. Per creare i nuovi database ho provato molti programmi ed alla fine ho deciso che i migliori sono:
SQLite Database Browser, scaricabile da : http://sqlitebrowser.sourceforce.net , e Sqlite-Manager che si installa sotto Mozilla Firefox e scaricabile quì : https://code.google.com/p/sqlite-manager/. Il secondo è più flessibile e completo ma non consente, salvo smentite, di aggiungere l' 'INTEGER PRIMARY KEY' ad una tabella esistente mentre SQLite Database Browser lo consente. Il concetto di database è diverso se si utilizzano tabelle DBF o SQL, con i DBF il database è la directory dove si trovano le tabelle, con SQL il database è un file che contiene le tabelle. Per realizzare il programma, sotto un progetto Lazarus, o creato due datamoduli 'DataSQL' e DataDBF' ogni datamodulo contiene le stesse tabelle con lo stesso nome dei campi, Ho dovuto convertire il TIPO dei campi come segue:
DBF             SQLite
C         VARCHAR
N         REAL o INTEGER
L                    BOOL
D                  DATE
M                 TEXT
nelle tabelle SQL, per un corretto funzionamento, è necessario mettere al primo posto un campo es. 'IDX' come 'INTEGER PRIMARY KEY'.
Nelle tabelle SQL non serve ricreare l'indice originario come nelle tabelle DBF in quanto è prossibile riordinare a runtime semplicemente cambiando la proprietà delle tabelle: SortedFileds:=Nomecampo;
Potete scaricare il programma di esempio da quì:
http://www.genuardi.net/download/DaDBFaSQLite.zip
il programma importa i dati di tabelle DBF in tabelle SQLite, funzionante sotto Linux Mint-Ubuntu e sotto Windows xp e Windows 7, serve solo ricompilarlo sulla propria piattaforma.
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

 

Recenti

How To

Utenti
  • Utenti in totale: 788
  • Latest: mastro
Stats
  • Post in totale: 18826
  • Topic in totale: 2242
  • Online Today: 708
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 2
Guests: 613
Total: 615

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.