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 13. Okt 2012 · letzter Beitrag vom 17. Jul 2014
Antwort Antwort
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#1

AW: Variable mittels INSERT in die DB speichern?

  Alt 11. Jul 2014, 01:43
Hier trifft dann höchstwahrscheinlich wieder das Entfernen der ":" zu. Nur aus den Aufrufen von .AddParam*(), im SQL-String müssen diese bleiben. Grund: Der Doppelpunkt signalisiert im SQL-String, dass nun ein Parameter folgt. Der Parametername selbst aber beinhaltet den Doppelpunkt nicht.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Variable mittels INSERT in die DB speichern?

  Alt 11. Jul 2014, 05:00
In der Dokumentation sind die Doppelpunkte auch drinnen. Es fehlt aber eine Pepare.
Markus Kinzler
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Variable mittels INSERT in die DB speichern?

  Alt 11. Jul 2014, 08:56
Oh okay, dann sorry. Ich kannte die verwendeten Komponenten nicht wirklich, habe es aber noch nie gesehen, dass die Parameter ausserhalb des SQL Statements so benannt werden müssen. Voreilige Schlüsse zu später Stunde - scusi!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
BenneX

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

AW: Variable mittels INSERT in die DB speichern?

  Alt 11. Jul 2014, 11:36
In der Dokumentation sind die Doppelpunkte auch drinnen. Es fehlt aber eine Pepare.
Hallo,

was genau meinst Du mit Pepare?
Meinst du die Delphi Dokumentation oder eine spezielle für den Wrapper?

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

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

AW: Variable mittels INSERT in die DB speichern?

  Alt 11. Jul 2014, 11:39
Aus der Doku:
Zitat:
the process is in essence:

1. Call PrepareSQL to return TSQLiteQuery 2. Call BindSQL for each parameter in the prepared query 3. Call ExecSQL to run the prepared query 4. Repeat steps 2 & 3 as required 5. Call ReleaseSQL to free SQLite resources
Markus Kinzler
  Mit Zitat antworten Zitat
BenneX

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

AW: Variable mittels INSERT in die DB speichern?

  Alt 11. Jul 2014, 13:12
Okay jetzt weiß ich prinzipiell wie ich vergehen muss. Danke für den Tipp mit der Doku. Leider werde ich nicht ganz schlau wie ich BindSQL zu verwenden habe. Was nehme ich als Argumente? Folgendes habe ich versucht:

Datenbank.BindSQL(':Koordinaten1',Koordinaten.Text) meldet mir leider nur "Es gibt keine überladene Version, die man mit diesen Argumenten aufrufen kann".

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

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

AW: Variable mittels INSERT in die DB speichern?

  Alt 11. Jul 2014, 13:23
Zitat:
Delphi-Quellcode:
   function PrepareSQL(const SQL: Ansistring): TSQLiteQuery;
    procedure BindSQL(Query: TSQLiteQuery; const Index: Integer; const Value: Integer); overload;
    procedure BindSQL(Query: TSQLiteQuery; const Index: Integer; const Value: String); overload;
In so etwa müsste es aussehen:
Delphi-Quellcode:
Query := Datenbank.PrepareSQL( SQLBefehl);
Datenbank.BindSQL(Query, 0, Koordinaten.Text);
...
Datenbank.ExecSQL(Query);
Ich bin mir aber nicht ganz sicher ob das Bind hier notwendig ist, und nicht erst ab der 2. Verwendung
Markus Kinzler
  Mit Zitat antworten Zitat
BenneX

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

AW: Variable mittels INSERT in die DB speichern?

  Alt 11. Jul 2014, 13: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
Antwort Antwort


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 23:18 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