![]() |
Re: Datenerfassung mit Firebird Datenbank
Eine spezielle Empfehlung hab ich jetzt nicht, aber schau mal hier:
![]() |
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. |
Re: Datenerfassung mit Firebird Datenbank
Dann schließt Du Deine Transaktion anscheinend nicht mit Commit ab.
|
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. |
Re: Datenerfassung mit Firebird Datenbank
Zitat:
|
Re: Datenerfassung mit Firebird Datenbank
Funzt heisst funktioniert :zwinker:
|
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:
:gruebel:
INSERT INTO MB256PLUS ("LfdNr", "Datum", "Uhrzeit", "Ereignis", "Teilnehmer", "Bereich")
VALUES('1234','12.12.2009','12:13:43','Extern Scharf','Schalteinrichtung','Verwaltung'); |
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; |
Re: Datenerfassung mit Firebird Datenbank
Mit (SQL-)Parametern
SQL-Code:
Die Abfrage setzt du einmalig und brauchst später nur noch die Werte setzen:
INSERT INTO MB256PLUS ("LfdNr", "Datum", "Uhrzeit", "Ereignis", "Teilnehmer", "Bereich")
VALUES(:lfdnr,:datum,:zeit,:ereignis,:teilnehmer,Bereich);
Delphi-Quellcode:
QryMB256PLUS.ParamByName('lfdnr').Value := ...
... QryMB256PLUS.ExecSQL; |
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. |
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