![]() |
Datenbank: SQLite • Version: 3 • Zugriff über: SQLiteSimpleDelphi-Wrappers von Tim Anderson
In SQLite Integer-Wert schreiben?
Hallo,
ich schreibe wie folgt in meine SQLite DB:
Delphi-Quellcode:
Nun möchte ich die Variable f und die Fremdschlüssel in die DB als Integer-Wert speichern. Wie kann ich das mit diesem Vorgehen machen, wenn die ganze sSQL-Kette ein String ist?
procedure TForm3.AddNewStation();
var dbFile: String; // DB Verzeichniss db: TSQLiteDatabase; // Klasse sSQL: String; f: Integer; begin dbFile := ExtractFilePath(Application.ExeName) + 'Stations.db'; db := TSQLiteDatabase.Create(dbFile); // Prüfen, ob Station favorit oder nicht if FavoriteCheckBox.Checked then f:=1 else f:=0; try // Transaktion beginnt db.BeginTransaction; // Tabelle allStations füllen sSQL := 'INSERT INTO allStations(aName, aStreamURL, aWebsiteURL, aScheduleURL, aFavorite, aFixed, aInfo, '; sSQL := sSQL + 'fk_language_id, fk_category_id) VALUES ("' + Trim(StationNameLEdit.Text) + '",'; sSQL := sSQL + '"' + Trim(StreamURLLEdit.Text) + '",'; sSQL := sSQL + '"' + Trim(StationWebsiteLEdit.Text) + '",'; sSQL := sSQL + '"' + Trim(StationProgramsLEdit.Text) + '",'; sSQL := sSQL + '"' + IntToStr(f) + '",'; sSQL := sSQL + '"' + IntToStr(0) + '",'; sSQL := sSQL + '"' + InfoMemo.Text + '",'; sSQL := sSQL + '"' + IntToStr(Integer(LanguageComboBox.Items.Objects[LanguageComboBox.ItemIndex])) + '",'; sSQL := sSQL + '"' + IntToStr(Integer(CategoryComboBox.Items.Objects[CategoryComboBox.ItemIndex])) + '");'; // Insert Befehl wird ausgeführt db.ExecSQL(sSQL); // Transaktion endet db.Commit; finally db.Free; end; end; Bin für jeden Tipp dankbar! |
AW: In SQLite Integer-Wert schreiben?
Hallo,
ich gehe mal davon aus, dass die Felder als Integer angelegt sind; dann einfach die zu schreibenden Werte nicht quoten - also:
Code:
Gruß
INSERT INTO tablename(intField, strField) VALUES(1, 'Text')
|
AW: In SQLite Integer-Wert schreiben?
Das geht ja gerade nicht, da die Integer als sSQL-String an die DB übergeben werden.
|
AW: In SQLite Integer-Wert schreiben?
nicht extra quoten:
Zitat:
Grüße |
AW: In SQLite Integer-Wert schreiben?
Hm... es will irgendwie nicht, egal wie... :gruebel:
|
AW: In SQLite Integer-Wert schreiben?
Hallo,
Zitat:
Gruß |
AW: In SQLite Integer-Wert schreiben?
Der Compiler akzeptiert das hier nicht:
String:=String+String+Integer+String; Egal wie ich Integer da quote ein Integer kann nicht in die String-Kette passen. Oder irre ich mich? |
AW: In SQLite Integer-Wert schreiben?
Hallo,
Zitat:
Delphi-Quellcode:
und das SQL-Statement sollte auch ausgeführt werden.
sSQL := 'INSERT INTO allStations(aName, aStreamURL, aWebsiteURL, aScheduleURL, aFavorite, aFixed, aInfo, ' +
'fk_language_id, fk_category_id) VALUES (' + QuotedStr (Trim(StationNameLEdit.Text)) + ',' + QuotedStr (Trim(StreamURLLEdit.Text)) + ',' + QuotedStr (Trim(StationWebsiteLEdit.Text)) + ',' + QuotedStr (Trim(StationProgramsLEdit.Text)) + ',' + IntToStr (f) + ',' + IntToStr (0) + ',' + QuotedStr (InfoMemo.Text) + ',' + IntToStr (Integer(LanguageComboBox.Items.Objects[LanguageComboBox.ItemIndex])) + ',' + IntToStr (Integer(CategoryComboBox.Items.Objects[CategoryComboBox.ItemIndex])) + ');'; Wenn Du uns zeigst was Du machst, dann kann Dir hier auch besser geholfen werden. Gruß |
AW: In SQLite Integer-Wert schreiben?
Zitat:
Sowas muss als Text übergeben werden
SQL-Code:
aber du produzierst das hier
insert into mytable ( strfld, intfld )
values ( "Text", 5 );
SQL-Code:
Was ist der Fehler?
insert into mytable ( strfld, intfld )
values ( "Text", "5" ); |
AW: In SQLite Integer-Wert schreiben?
Ok das klappt, aber die int variable f wir bei mir zur str. Wenn ich aber die Umwandlung nach str weglasse, meckert der Compiler. Wie kann ich die int Variable ohne Umwandlug als int in die DB schreiben?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:15 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