![]() |
AW: Variable mittels INSERT in die DB speichern?
Ist es denn wirklich so schwer oder stehe ich gerade einfach nur auf dem Schlauch?!
Delphi-Quellcode:
Kompiliert wird jetzt endlich erfolgreich! (DANKE!) jedoch meldet er beim Einlesen:
query := Datenbank.PrepareSQL('INSERT INTO OGame (Koordinaten) VALUES (:Koordinaten1)');
Datenbank.BindSQL(query,0,Koordinaten.Text); Datenbank.AddParamText( ':Koordinaten1', Koordinaten.Text ); Datenbank.ExecSQL(query); "Could not prepare SQL statement". query:TSQLiteQuery; Datenbank : TSQLiteDatabase ; SQLTable : TSQLiteTable ; :evil: Grüße! |
AW: Variable mittels INSERT in die DB speichern?
Versuch mal:
Delphi-Quellcode:
Datenbank.AddParamText( ':Koordinaten1', Koordinaten.Text );
query := Datenbank.PrepareSQL('INSERT INTO OGame (Koordinaten) VALUES (:Koordinaten1)'); Datenbank.BindSQL(query,0,Koordinaten.Text); Datenbank.ExecSQL(query); |
AW: Variable mittels INSERT in die DB speichern?
Leider immer noch der gleiche Fehler :?
/e: Es ist doch unglaublich :lol: Ich habe den Quelltext jetzt aufgeräumt und unnötigen Mist erstmal weggelassen. Der SQL Fehler ist jetzt erstaunlicherweise auch weg, jedoch erstellt er nun wieder einen leeren Datensatz :lol::lol: also sind wir wieder beim Ursprungsproblem ... Vielleicht siehst Du wo der Fehler liegt, wenn du den gesamten Quelltext siehst:
Delphi-Quellcode:
DROP TABLE ist nur solange drin, bis ich eine Abfrage eingebaut habe die überprüft ob es die Datenbank schon gibt.
unit U_BenneXOGameTool;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, SQLiteTable3, Vcl.StdCtrls, Vcl.ExtCtrls; type THauptoberflaeche = class(TForm) Ueberschrift: TPanel; Rahmen_Einlesefeld: TGroupBox; Spielername: TEdit; Koordinaten: TEdit; Metall: TEdit; Kristall: TEdit; Deuterium: TEdit; Einlesebutton: TButton; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure EinlesebuttonClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Hauptoberflaeche: THauptoberflaeche; Datenbank : TSQLiteDatabase ; SQLTable : TSQLiteTable ; query :TSQLiteQuery; Datenbankdatei : String ; implementation {$R *.dfm} procedure THauptoberflaeche.EinlesebuttonClick(Sender: TObject); begin Datenbank.ExecSQL('DROP TABLE OGame'); Datenbank.ExecSQL('CREATE TABLE OGame ([Koordinaten] STRING)'); Datenbank.AddParamText( ':Koordinaten1', Koordinaten.Text ); query:=Datenbank.PrepareSQL('INSERT INTO OGame (Koordinaten) VALUES (:Koordinaten1)'); Datenbank.BindSQL(query,0,Koordinaten.Text); Datenbank.ExecSQL(query); end; procedure THauptoberflaeche.FormClose(Sender: TObject; var Action: TCloseAction); begin Datenbank.Free; end; procedure THauptoberflaeche.FormCreate(Sender: TObject); begin // Datenbank im Programmordner erstellen Datenbankdatei := ExtractFilePath(Application.ExeName) + 'OGame.db'; Datenbank := TSQLiteDatabase.Create(Datenbankdatei) ; end; end. Ich danke Dir auf jeden Fall jetzt schon für deine Mühe! |
AW: Variable mittels INSERT in die DB speichern?
Ich habe jetzt herausgefunden, dass wenn ich aus
Delphi-Quellcode:
ein
Datenbank.BindSQL(query,0,Koordinaten.Text);
Delphi-Quellcode:
mache und er mir bspw. das Wort 'test' eingtragen soll er mir zumindest 't.e.' einspeichert. Zufall ausgeschlossen.
Datenbank.BindSQL(query,1,Koordinaten.Text);
Woran könnte das liegen? Hilft uns das irgendwie weiter das Problem zu lösen? Viele Grüße, BenneX |
AW: Variable mittels INSERT in die DB speichern?
Eine Umklammerung mittels BeginTransaction und Commit führte leider auch nicht zu dem gewünschten Ergebnis, somit gehe ich jetzt den unsicheren Weg über "'+ +'". Grüße!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 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