![]()
| Tech-Ecke / Delphi Inhalt / MySQL Datenbanken |
|
|
|
|
SQLConnection1.Connected := true; SQLQuery1.SQL.Text := 'INSERT INTO meineTabelle(Straße,Hausnummer) VALUES(:s1, :s2)'; SQLQuery1.ParamByName('s1').Value := 'Hintergasse'; SQLQuery1.ParamByName('s2').Value := '5'; SQLQuery1.ExecSQL; SQLQuery1.Close; SQLConnection1.Connected := false; |
Daten abrufen
Mit folgendem Code filtert man die Datensätze nach "Hausnummer"
= "5", sortiert das Ergebnis nach der "id" (bis hier noch alles
auf dem Server), holt die Daten ab und schreibt sie z.B. in eine
TMemo.
|
var
s: String; . . . SQLConnection1.Connected := true; SQLQuery1.SQL.Text := 'SELECT * FROM `meinetabelle` WHERE `hausnummer` = :i1'; SQLQuery1.ParamByName('i1').Value := '10'; Memo1.Lines.clear; SQLQuery1.Open; while not SQLQuery1.Eof do begin s := SQLQuery1.FieldByName('id').AsString; s := s +' - ' +SQLQuery1.FieldByName('straße').AsString; s := s +' - ' +SQLQuery1.FieldByName('hausnummer').AsString; Memo1.Lines.Add(s); SQLQuery1.next; end; SQLQuery1.Close; SQLConnection1.Connected := false; |
TDataSource
, TSQLSimpleDataSet
und TDBGrid
(Daten Lesen)
Nachdem man alle
drei Komponenten auf die Form gezogen hat dann:
- Verlinkt man die DataSource im Objektinspektor bei
Connection mit der
"SQLConnection1".
- Die SQLSimpleDataSet sollte sich automatisch mit
SQLConnection1 und DataSource verbunden haben, bei mir stand bei
aber Connection
SQLConnection1.InternalDataSet,
hier musste ich händisch auf (nur)
SQLConnection1 umstellen, also das ".InternalDataSet"
wegnehmen.
- Zum Schluss verlinkt man noch die DBGrid bei
DataSource mit
DataSource1.
Ist das erledigt, dann bei
SQLConnetion1 im Objectinspektor
"connected" und bei
SQLSimpleDataSet1 "Active" auf "true" setzen.
Jetzt ein Doppelklick auf die DBGrid und es öffnet sich
folgendes Fenster, in dem man dann auf den Button "Add All
Fileds" klickt.

DBGrid

Die Felder der
Tabelle erscheinen nun im Fenster und auch in der DBGrid.
Selektiert man ein Feld, so kann man im Objektinspektor über "Width"
die Spaltenbreite anpassen. Bei mir war z.B. die Spalte
"Hausnummer" nicht zu sehen, da die Spalte "Straße" viel zu
breit vordefiniert war.
Ist das alles abgeschlossen, dann kann bei
SQLConnetion "connected" wieder auf "false" gesetzt werden und
ebenfalls
SQLSimpleDataSet1 "Active" wieder auf "false".
Nun kann die DBGrid in Laufzeitumgebung mit den aktuellen Daten
der Datenbank befüllt werden:
| SimpleDataSet1.Active := true; // mit Datenbank verbinden und DBGrid befüllen |
| SimpleDataSet1.Active := false; // Verbindung wieder trennen |
TClientDataSet
(Daten schreiben)
Die in der DBGrid geänderte Daten
können mit TClientDataSet zurück in die Datenbank gespielt
werden. Die Komponente muss dazu nicht auf die Form gezogen
werden, aber "DBClient" sollte dann in die Uses geschrieben
werden. Der Aufruf sieht wie folgt aus:
| TClientDataSet(SimpleDataSet1).ApplyUpdates(-1); |
Bevor man die Daten zurückspielt kann man sich auch die Anzahl der Änderungen ausgeben lassen, das geht so:
| showmessage(IntToStr(TClientDataSet(SimpleDataSet1).ChangeCount)); |
![]()
Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !
[letzte Aktualisierung 30.03.2023]