Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   sql-satement mit variablen (https://www.delphipraxis.net/122514-sql-satement-mit-variablen.html)

khh 17. Okt 2008 10:47

Datenbank: mysql • Version: 5 • Zugriff über: ZEOS

sql-satement mit variablen
 
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

DeddyH 17. Okt 2008 10:54

Re: sql-satement mit variablen
 
Wie sieht die Stringliste denn anschließend inhaltlich aus?

khh 17. Okt 2008 11:04

Re: sql-satement mit variablen
 
Zitat:

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 :-(

nahpets 17. Okt 2008 11:25

Re: sql-satement mit variablen
 
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.

mkinzler 17. Okt 2008 11:27

Re: sql-satement mit variablen
 
Werden die Parameter auch gesetzt?

khh 17. Okt 2008 11:49

Re: sql-statement mit variablen
 
Zitat:

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 :-(

DeddyH 17. Okt 2008 12:06

Re: sql-satement mit variablen
 
Delphi-Quellcode:
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.

nahpets 17. Okt 2008 12:10

Re: sql-satement mit variablen
 
Hallo,

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

khh 17. Okt 2008 12:15

Re: sql-satement mit variablen
 
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?

DeddyH 17. Okt 2008 12:18

Re: sql-satement mit variablen
 
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';


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 Uhr.
Seite 1 von 2  1 2      

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