on ma conseillé le Sqlite mais j’ai du mal a trouver des tutoriel pour expliqué comment l'utilisé avec delphi 7
on ma conseillé le Sqlite mais j’ai du mal a trouver des tutoriel pour expliqué comment l'utilisé avec delphi 7
Regarde la Zeos Lib, peut-être
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
je rame toujours avec le Sqlite y a pas un tuto ou un exemple comment l’utilisé avec le delphi 7 juste les info de base
- installé le Sqlite avec delphi
- crée une base sqlite
- l'ajout
- suppression
- modification
- recherche
??![]()
Salut
Plutôt que SQLLite, utilise Firebird, autant faire les choses en grand. Même pour une application monoposte, ça reste pertinent grâce à la version Embedded du serveur pour laquelle serveur et client sont ensemble en local.
ZeosLIB fonctionne bien avec FB.
SQLLite a l'avantage d'être "léger" (pléonasme) car le moteur est embarqué dans l'exécutable mais je ne l'ai jamais mis en oeuvre.
Avec des BLOB Texte tu pourras charger un fichier texte dans un seul champ, petit veinard.
Paradox a le défaut d'être un peu gourmand en ressource (nombre de fichiers à ouvrir simultanément, d'être obsolète (et encore cela se discute) et surtout de ne pas se comporter toujours très bien en réseau surtout s'il y a de nombreux utilisateurs.
![]()
M E N S . A G I T A T . M O L E M
Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal
"La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."
j'ai enfin pu réaliser le traitement avec les composant Zeolib +Sqlite3
pour l'ajout nouveau enregistrement
Maitre ajour ou Modification
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 procedure TForm1.Button3Click(Sender: TObject); begin // Si aucun enregistrement if DbGrid1.Datasource.Dataset.RecordCount = 0 then Exit; // Si aucun sélectionné if DbGrid1.Datasource.Dataset.RecNo < 0 then Exit; // ajouter un nouveau enrejestrement begin // Passer en mode édition DBGrid1.Datasource.Dataset.Append; // ajouter les données DBGrid1.Datasource.Dataset.FieldByName('Name').AsString := form1.Edit3.Text; DBGrid1.Datasource.Dataset.FieldByName('ProviderID').AsString := form1.Edit4.Text; DBGrid1.Datasource.Dataset.FieldByName('KeyIndex').AsString := form1.Edit5.Text; DBGrid1.Datasource.Dataset.FieldByName('Key').AsString := form1.Edit6.Text; DBGrid1.Datasource.Dataset.FieldByName('Comments').AsString := DateTimeToStr(now); // Valider DBGrid1.Datasource.Dataset.Post; end; end;
Suppression
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 procedure TForm1.Button2Click(Sender: TObject); begin // Si aucun enregistrement if DbGrid1.Datasource.Dataset.RecordCount = 0 then Exit; // Si aucun sélectionné if DbGrid1.Datasource.Dataset.RecNo < 0 then Exit; // Mettre à jour begin // Passer en mode édition DBGrid1.Datasource.Dataset.Edit; // Modifier les données DBGrid1.Datasource.Dataset.FieldByName('Name').AsString := form1.Edit3.Text; DBGrid1.Datasource.Dataset.FieldByName('ProviderID').AsString := form1.Edit4.Text; DBGrid1.Datasource.Dataset.FieldByName('KeyIndex').AsString := form1.Edit5.Text; DBGrid1.Datasource.Dataset.FieldByName('Key').AsString := form1.Edit6.Text; DBGrid1.Datasource.Dataset.FieldByName('Comments').AsString := DateTimeToStr(now); // Valider la modification DBGrid1.Datasource.Dataset.Post; end; end;
Recherche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 procedure TForm1.Button1Click(Sender: TObject); begin // Si aucun enregistrement if DbGrid1.Datasource.Dataset.RecordCount = 0 then Exit; // Si il y a un enregistrement courant if DbGrid1.Datasource.Dataset.RecNo >= 0 then if MessageDlg('Voulez vous vraiment supprimer cet enregistrement ?', MtConfirmation, MbOkCancel, 0) = mrOk then DbGrid1.Datasource.DataSet.Delete; end;
le problème qu il me reste que j'arrive pas a résoudre c'est la création de la base si elle n'existe pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 procedure TForm1.Edit2Change(Sender: TObject); begin // Arrête le filtrage de la table form1.ZTable1.Filtered:=false; // Test si il n'y a rien dans le TEdit if Trim(Edit1.Text) <> '' then begin // Construction du Filtre avec le texte saisi dans la zone TEdit form1.ZTable1.Filter := 'ProviderID like ' + QuotedStr(Edit2.Text + '*'); // Activation du filtre form1.ZTable1.Filtered := true; end; end;
comment on crée une base Sqlite3 ?
SQLite crée la base (le fichier) quand on s'y connecte s'il n'existait pas. Je suppose que le TZConnection.Connect devrait le faire.
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
Il suffit d'un ExecuteDirect( 'CREATE TABLE IF NOT EXISTS matable (id INTEGER...)' );
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
Partager