AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

sql-satement mit variablen

Ein Thema von khh · begonnen am 17. Okt 2008 · letzter Beitrag vom 17. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2   
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#1

sql-satement mit variablen

  Alt 17. Okt 2008, 10:47
Datenbank: mysql • Version: 5 • Zugriff über: ZEOS
hallo zusammen,
ich möchte eine sqlstatement ausführen:
SQLStatement.add('insert into tabelle1 (nutzername, rechnerip )values(:name, :ip) ');

mit festen werten funtioniert das so ( die werte in hochkomma) auch, bei dem Einsatz von Variablen hab ich schon alles Mögliche vom : bis QuotedStr(variable)
versucht,
irgendwo ist immer ein fehler im Statement.


Wie ist die richtige syntax ?

EDIT:
SQLStatement ist eine stringliste die mit:
ZQuery1.SQL := SQLStatement;
an die ZQuery übergeben wird.



Danke Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: sql-satement mit variablen

  Alt 17. Okt 2008, 10:54
Wie sieht die Stringliste denn anschließend inhaltlich aus?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#3

Re: sql-satement mit variablen

  Alt 17. Okt 2008, 11:04
Zitat von DeddyH:
Wie sieht die Stringliste denn anschließend inhaltlich aus?
so:
INSERT INTO tabelle1 (nutzername, rechnerip) VALUES (:name, :ip);

kann also so nicht funktionieren
Karl-Heinz
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

Re: sql-satement mit variablen

  Alt 17. Okt 2008, 11:25
Hallo,

was für ein Typ/Klasse ist sqlstatement?

Prüf mal, ob Deine Componente ein Attribut ParamCheck hat und ob das auf True steht.

Das gibt es zumindest bei TQuery und TAdoQuery.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: sql-satement mit variablen

  Alt 17. Okt 2008, 11:27
Werden die Parameter auch gesetzt?
Markus Kinzler
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#6

Re: sql-statement mit variablen

  Alt 17. Okt 2008, 11:49
Zitat von mkinzler:
Werden die Parameter auch gesetzt?
ist ne normale stringliste
SQLStatement: TStringlist;

die Query ist ne TZQuery
und paramcheck steht auf true

EDIT:
folgende syntax funktioniert

SQLStatement.add(' Insert into tabelle1 set nutzername =' + QuotedStr(nutzername) );

leider hab ich so halt nur den einen wert
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: sql-satement mit variablen

  Alt 17. Okt 2008, 12:06
Stringlist.Add(Format('INSERT INTO tabelle1 (nutzername, rechnerip) VALUES (%s, %s)',[QuotedStr(name),QuotedStr(ip)])); So besser? Wieso befüllst Du eigentlich eine Stringliste für die Statements, das hab ich bisher noch nicht ganz verstanden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

Re: sql-satement mit variablen

  Alt 17. Okt 2008, 12:10
Hallo,

Ist das denn noch richtige SQL-Syntax?
SQLStatement.add(' Insert into tabelle1 set nutzername =' + QuotedStr(nutzername) ); Das müsste dann doch funktionieren:SQLStatement.add('insert into tabelle1 (nutzername, rechnerip )values(' + QuotedStr(nutzername) + ',' + QuotedStr(ip) + ')'); DeddyH's Variante ist natürlich auch ok.
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#9

Re: sql-satement mit variablen

  Alt 17. Okt 2008, 12:15
folgendes statement funktioniert:

SQLStatement.add('INSERT INTO tabelle1 ( nutzername, rechnerip ) VALUES ( "test", "testip" )' );
dagegen bringt :


SQLStatement.add('INSERT INTO tabelle1 ( nutzername, rechnerip ) VALUES ( "test", :rechnerip )' );
den Fehler:
colnum rechnerip can no be NULL



wo steckt der Fehler?
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: sql-satement mit variablen

  Alt 17. Okt 2008, 12:18
SQL-Parameter müssen ja auch befüllt werden.
Delphi-Quellcode:
ZQuery1.SQL.Add('INSERT INTO Tabelle1(rechnername, rechnerip) VALUES(:name, :ip');
ZQuery1.ParamByName('name').AsString := 'Heinzchen';
ZQuery1.ParamByName('ip').AsString := '192.168.1.200';
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:09 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