AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Variable mittels INSERT in die DB speichern?
Thema durchsuchen
Ansicht
Themen-Optionen

Variable mittels INSERT in die DB speichern?

Ein Thema von AlexII · begonnen am 14. Okt 2012 · letzter Beitrag vom 17. Jul 2014
Antwort Antwort
Seite 3 von 3     123   
BenneX

Registriert seit: 9. Jul 2014
21 Beiträge
 
#21

AW: Variable mittels INSERT in die DB speichern?

  Alt 11. Jul 2014, 14:45
Ist es denn wirklich so schwer oder stehe ich gerade einfach nur auf dem Schlauch?!

Delphi-Quellcode:
  query := Datenbank.PrepareSQL('INSERT INTO OGame (Koordinaten) VALUES (:Koordinaten1)');
  Datenbank.BindSQL(query,0,Koordinaten.Text);
  Datenbank.AddParamText( ':Koordinaten1', Koordinaten.Text );
  Datenbank.ExecSQL(query);
Kompiliert wird jetzt endlich erfolgreich! (DANKE!) jedoch meldet er beim Einlesen:

"Could not prepare SQL statement".

query:TSQLiteQuery;
Datenbank : TSQLiteDatabase ;
SQLTable : TSQLiteTable ;



Grüße!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: Variable mittels INSERT in die DB speichern?

  Alt 11. Jul 2014, 14:53
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);
Markus Kinzler
  Mit Zitat antworten Zitat
BenneX

Registriert seit: 9. Jul 2014
21 Beiträge
 
#23

AW: Variable mittels INSERT in die DB speichern?

  Alt 11. Jul 2014, 15:11
Leider immer noch der gleiche Fehler

/e: Es ist doch unglaublich 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 also sind wir wieder beim Ursprungsproblem ...

Vielleicht siehst Du wo der Fehler liegt, wenn du den gesamten Quelltext siehst:

Delphi-Quellcode:
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.
DROP TABLE ist nur solange drin, bis ich eine Abfrage eingebaut habe die überprüft ob es die Datenbank schon gibt.
Ich danke Dir auf jeden Fall jetzt schon für deine Mühe!

Geändert von BenneX (11. Jul 2014 um 15:26 Uhr)
  Mit Zitat antworten Zitat
BenneX

Registriert seit: 9. Jul 2014
21 Beiträge
 
#24

AW: Variable mittels INSERT in die DB speichern?

  Alt 12. Jul 2014, 17:10
Ich habe jetzt herausgefunden, dass wenn ich aus
Datenbank.BindSQL(query,0,Koordinaten.Text); ein
Datenbank.BindSQL(query,1,Koordinaten.Text); mache und er mir bspw. das Wort 'test' eingtragen soll er mir zumindest 't.e.' einspeichert. Zufall ausgeschlossen.

Woran könnte das liegen? Hilft uns das irgendwie weiter das Problem zu lösen?

Viele Grüße,
BenneX
  Mit Zitat antworten Zitat
BenneX

Registriert seit: 9. Jul 2014
21 Beiträge
 
#25

AW: Variable mittels INSERT in die DB speichern?

  Alt 17. Jul 2014, 13:10
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!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz