![]() |
Datenbank: SQLite • Version: 3 • Zugriff über: SQLiteSimpleDelphi-Wrappers von Tim Anderson
Ersten Wert in die DB schreiben und sofort abfragen, bevor andere geschrieben werden?
Hallo,
ich komme bei folgendem nicht mehr weiter. Ich möchte in die DB 8 Angaben zu einem Radiosender abspeichern, zwei davon sind Comboboxen mit der Auswahl von Sprache und Kategorie. Nun muss ich schon vor dem Abspeichern wissen welche ID der Sprache und Kategorie ich dem Sender zuweisen soll, wenn diese gerade erst mit allen anderen Angaben erst erstellt werden? Weiß gar nicht wie ich das richtig beschreibe soll... auf jeden Fall ich muss die ersten zwei Werte in die Tabelle speichern, dann die ID dieser Werte holen, und mit anderen Angaben zu dem Sender verknüpft abspeichern. Wie geht das eigentlich? Mit dem Trigger? |
AW: Ersten Wert in die DB schreiben und sofort abfragen, bevor andere geschrieben wer
Stichworte Transaction und Last Inserted ID.
|
AW: Ersten Wert in die DB schreiben und sofort abfragen, bevor andere geschrieben wer
@OrNEC:
Wenn du ComboBoxen zur Auswahl von Sprache und Kategorie einsetzt, ist das im Grunde kontraproduktiv. Verwende doch besser gleich eine TDBLookUpComboBox, verbinde sie entsprechend mit deiner Haupttabelle und der jeweiligen Untertabelle und du hast die ID von Sprache bzw. Kategorie automatisch in der Tabelle. Du kannst dir ja mal als Beispiel das ![]() ![]() |
AW: Ersten Wert in die DB schreiben und sofort abfragen, bevor andere geschrieben wer
Zitat:
Aber danke Dir trotzdem! :thumb: |
AW: Ersten Wert in die DB schreiben und sofort abfragen, bevor andere geschrieben wer
Zitat:
![]() Wenn du jedoch weiterhin mit obsoleten Mitteln programmieren möchtest – also keine Datasets, kein direkter SQL-Zugriff auf die DB usw. – dann mußt tatsächlich du dir was überlegen, obwohl du im Grunde eigentlich möchtest, das wir hier was für dich überlegen :lol: |
AW: Ersten Wert in die DB schreiben und sofort abfragen, bevor andere geschrieben wer
Zitat:
|
AW: Ersten Wert in die DB schreiben und sofort abfragen, bevor andere geschrieben wer
Zitat:
Delphi-Quellcode:
{ "Protokoll"-Rumpfdatensatz generieren }
quSpeichern.SQL.Text := 'Insert Into ..hier steht Dein SQL-Code..'; quSpeichern.ExecSQL; { Den neu erstellten Datensatz finden und die Datensatz ID bestimmen } quSpeichern.SQL.Text := 'Select LAST_INSERT_ID()'; quSpeichern.Active := True; iDatensatz := quSpeichern.Fields[0].AsInteger; |
AW: Ersten Wert in die DB schreiben und sofort abfragen, bevor andere geschrieben wer
Er möchte aber doch keine DB-Komponenten von Delphi verwenden ... :gruebel:
|
AW: Ersten Wert in die DB schreiben und sofort abfragen, bevor andere geschrieben wer
Zitat:
|
AW: Ersten Wert in die DB schreiben und sofort abfragen, bevor andere geschrieben wer
Naja, wenn man mit SQL arbeiten kann, sollte man eher so vorgehen:
Delphi-Quellcode:
oder gleich mit Locate arbeiten:
MyQuery.SQL.Text := 'select * from Tabelle_Sprache where Sprache = ' + QuotedStr(Edit_Sprache.Text);
MyQuery.Open; if MyQuery.RecordCount = 0 then begin // Hier die Insert-Methode einfügen/aufrufen end;
Delphi-Quellcode:
Sonst hat man hinterher unzählige Einträge derselben Sprache in der Tabelle.
If Not MyQuery.Locate('Sprache',Edit_Sprache.Text,[] then ...
Leider hab ich keinen blassen Schimmer, wie der Zugriff über die SQLiteSimpleDelphi-Wrappers von Tim Anderson abläuft und kann daher nur spekulieren. Gibt es in diesem Wrapper die Möglichkeit, SQL einzusetzen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 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 by Thomas Breitkreuz