1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
| nit bdd_27_03;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Extctrls, StdCtrls, Data.SqlExpr,
Data.DbxSqlite, Data.FMTBcd, Data.DB;
type
TForm8 = class(TForm)
bpConnect: TButton;
bpExecute: TButton;
SQLConnection1: TSQLConnection;
OutputMemo: TMemo;
SQLQuery1: TSQLQuery;
procedure bpConnectClick(Sender: TObject);
procedure bpExecuteClick(Sender: TObject);
procedure ShowSelectResults();
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form8: TForm8;
implementation
{$R *.dfm}
//----------------CONNEXION-----------------------------------------
procedure TForm8.bpConnectClick(Sender: TObject);
begin
SQLConnection1.Params.Add('Database=h:\test_mars_2020.db');
try
// Establish the connection.
SQLConnection1.Connected := true; // etablit la connexion
bpExecute.Enabled := true;
outputMemo.Text := 'Connection établie!';
except
on E: EDatabaseError do
ShowMessage('Exception raised with message' + E.Message);
end;
end;
//--------------------Analyse requetes---------------------------------------------
procedure TForm8.bpExecuteClick(Sender: TObject);
var ma_requete : string;
begin
outputMemo.ClearSelection;
ma_requete := 'SELECT * FROM utilisateurs where nom = DUPONT' ;
try
SQLQuery1.SQL.Text := ma_requete; // toute la requete est contenue dans query
SQLQuery1.Active := true; // Données débloquées ou pas
except
on E: Exception do
outputMemo.Text := 'Exception raised with message: ' + E.Message;
end;
ShowSelectResults(); // procedur montrer les résultats
end;
//-----------------------------------------------------------------------
procedure TForm8.ShowSelectResults();
var
ma_liste: TStringList;
currentField: TField;
currentLine: string;
i : integer;
begin
showmessage (' j''arrive dans showresults');
if not SQLQuery1.IsEmpty then
// si la le retour n'est pas vide alors faire...
begin
SQLQuery1.First;
// le pointeur se place sur le premier enregistrement.
ma_liste := TStringList.Create;
// Créer la liste de chaine nommée "ma-liste"
try
SQLQuery1.GetFieldNames(ma_liste);
// récupère les champs dans ma_liste
//currentLine := '';
for i := 0 to ma_liste.Count - 1 do
// pour chaque valeur récupérée faire...
begin
currentField := SQLQuery1.FieldByName(ma_liste[i]);
showmessage (' je traite la valeur indexée i' +
(currentfield).AsString + ' ' + i.ToString );
// choix du champ traité "i"
currentLine := currentLine + ' ' + currentField.AsString;
showmessage(' j''ajoute un nouveau champ dans currentline traitée');
// ajouter à la chaine la valeur du champ traité
end;
outputMemo.Lines.Add(currentLine);
showmessage (' je viens de finir ma ligne et je l''afiche');
// ajoute la valeur de la ligne sur l'affichage
finally // IMPERATIF A LA FIN
ma_liste.Free; //supprimer l'objet liste de chaine
end;
end;
end;
end. |
Partager