Delphi-PRAXiS
Seite 10 von 12   « Erste     8910 1112      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Datenerfassung mit Firebird Datenbank (https://www.delphipraxis.net/129737-datenerfassung-mit-firebird-datenbank.html)

DeddyH 26. Feb 2009 18:40

Re: Datenerfassung mit Firebird Datenbank
 
Eine spezielle Empfehlung hab ich jetzt nicht, aber schau mal hier: http://www.terrashop.de/buecher/db/sql/. Da sollte für jeden Geschmack und Geldbeutel etwas dabei sein.

Jens Hartmann 26. Feb 2009 18:48

Re: Datenerfassung mit Firebird Datenbank
 
Liste der Anhänge anzeigen (Anzahl: 1)
Super, eindlich mal ein Erfolgserlebnis, aber natürlich wie immer mit einem Haken.

Es funktioniert, ich bekomme Verbindung zur Datenbank, kann eintragen und auch Abfragen. Aber,immer die Einträge nach dem Programmstart.

Starte ich das Programm neu, und mache als erstes die Abfrage, ist die Tabelle leer, Fügen ich dann aber Daten ein, kann ich diese Abfragen, und erkenne auch an hand der ID das mal andere Datensätze vorhanden waren.

DeddyH 26. Feb 2009 18:58

Re: Datenerfassung mit Firebird Datenbank
 
Dann schließt Du Deine Transaktion anscheinend nicht mit Commit ab.

Jens Hartmann 26. Feb 2009 19:02

Re: Datenerfassung mit Firebird Datenbank
 
Danke, Funtz.

Das war ne schwere geburt.

Das Commit, ist ja von Firebird. Das hatte ich schon wieder verdrängt..

Aber es stand ja so in der Beschreibung Commit zum Abschluß und Rollback für Zurück.

Danke, Danke.

Jetzt werde ich das ganze heute Abend mal noch ein bißchen testen und dann morgen mal in mein Projekt einarbeiten.

DeddyH 26. Feb 2009 19:04

Re: Datenerfassung mit Firebird Datenbank
 
Zitat:

Zitat von Jens Hartmann
Danke, Funtz.

Öhmm... ich heiße Detlef :roll:

mkinzler 26. Feb 2009 19:06

Re: Datenerfassung mit Firebird Datenbank
 
Funzt heisst funktioniert :zwinker:

Jens Hartmann 27. Feb 2009 13:23

Re: Datenerfassung mit Firebird Datenbank
 
Hallo nochmal zusammen,

So das mit dem INSERT, UPDATE und so, funktioniert soweit ganz gut, ich habe die Datenbank jetzt an mein Programm angebunden und auch das funktioniert einwandfrei.


Jetzt mal ne Frage, ich habe hier im Forum und sonst schon gesucht, kann allerdings nichts finden.

Ich habe ja jetzt verschiedene String´s, die den verschiedenen Feldern der Tabelle zugeordnet werden sollen. Bis lang, habe ich mit folgendem INSERT- Befehl gearbeitet. Wie ersetze ich jetzt die festen Eingaben gegen Variablen.

Delphi-Quellcode:
{Neue Daten in Datenbank einfügen}
procedure TForm1.BTDatenbankClick(Sender: TObject);
begin
  QryMB256PLUS.Close;
  QryMB256PLUS.SQL := Memo2.Lines;  //Der Inhalt von Memo2 ist mein SQL String
  QryMB256PLUS.ExecSQL;
  ConMB256PLUS.Commit;
end;
SQL-Code:
INSERT INTO MB256PLUS ("LfdNr", "Datum", "Uhrzeit", "Ereignis", "Teilnehmer", "Bereich")
VALUES('1234','12.12.2009','12:13:43','Extern Scharf','Schalteinrichtung','Verwaltung');
:gruebel:

Satty67 27. Feb 2009 13:34

Re: Datenerfassung mit Firebird Datenbank
 
Man möge micht korrigieren, wenn es falsch ist ;)
Delphi-Quellcode:
// Entweder den String mit Variablen aufbauen
// QuotedStr halt die entsprechende Variable übergeben
Memo1.Text := 'INSERT INTO MB256PLUS ("LfdNr", "Datum", "Uhrzeit", "Ereignis", "Teilnehmer", "Bereich")
              VALUES('+
              QuotedStr('1234')+','+
              QuotedStr('12.12.2009')+','+
              QuotedStr('12:13:43')+','+
              QuotedStr('Extern Scharf')+','+
              QuotedStr('Schalteinrichtung')+','+
              QuotedStr('Verwaltung')+
              ')';

// oder gleich SQL.Text zuweisen.
// ExecSQL hinterher nicht vergessen

// oder Field Eigenschaften von Query verwenden
Query.Insert;
Query.FieldByName('LfdNr').AsString := '1234';
Query.FieldByName('Datum').AsDate := StrToDate('12.12.2009');
[...]
Query.Post;

mkinzler 27. Feb 2009 13:35

Re: Datenerfassung mit Firebird Datenbank
 
Mit (SQL-)Parametern
SQL-Code:
INSERT INTO MB256PLUS ("LfdNr", "Datum", "Uhrzeit", "Ereignis", "Teilnehmer", "Bereich")
VALUES(:lfdnr,:datum,:zeit,:ereignis,:teilnehmer,Bereich);
Die Abfrage setzt du einmalig und brauchst später nur noch die Werte setzen:

Delphi-Quellcode:
QryMB256PLUS.ParamByName('lfdnr').Value := ...
...
QryMB256PLUS.ExecSQL;

DeddyH 27. Feb 2009 13:36

Re: Datenerfassung mit Firebird Datenbank
 
Nimm am besten SQL-Parameter.
Delphi-Quellcode:
Query.SQL := 'INSERT INTO Tabelle(Wert1,Wert2) VALUES(:wert1,:wert2)';
Query.ParamByName('wert1').AsInteger := 123;
Query.ParamByName('wert2').AsString := 'Wuppdi';
Query.ExecSQL;


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 Uhr.
Seite 10 von 12   « Erste     8910 1112      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz