![]() |
AW: MySQL und BindParam
Danke, jetzt klappt's.
Kann man den Typ String deinstallieren? :-D |
AW: MySQL und BindParam
Hallo Bernhard,
Zitat:
Die ?-Notation hat auf jeden Fall den Nachteil, dass man eine Variable im SQL-Statement nicht mehrfach referenzieren kann. Außer man übergibt sie auch mehrfach, was ziemlich blöd aussieht. Außerdem liest es sich einfach schlecht, wenn nur Fragezeichen dort stehen, wo eigentlich Namen sein sollten. Die Variablenausgabe mit Binding finde ich aber recht nett.
Delphi-Quellcode:
type
TDataRec = class id : Integer; col1 : Integer; col2 : String; col3 : Integer; col4 : Double; col5 : String; end; . . . procedure TfrmBindParam.btnStdQueryClick(Sender: TObject); var sqlres : TMysqlResult; bEx: Boolean; iVar: Integer; begin // normale Query ohne Statement und Bind if sql.Connected then begin csgTest.Clear; iVar := 1000; sqlres := sql.query('SELECT * FROM test_table ' + 'WHERE col3 = ''' + IntToStr(iVar) + '''', True, bEx); if bEx then begin with sqlres do begin First; while not Eof do begin di.id := FieldByName('id').AsInteger; di.col1 := FieldByName('col1').AsInteger; di.col2 := FieldByName('col2').AsString; di.col3 := FieldByName('col3').AsInteger; di.col4 := FieldByName('col4').AsDateTime; di.col5 := FieldByName('col5').AsString; csgTest.Add(di); Next; end; Free; end; end; end; end; procedure TfrmBindParam.btnBindQueryClick(Sender: TObject); var sqlRes : TMysqlResult; bEx: Boolean; iVar: Integer; begin // Query mit Statement und Bind if sql.Connected then begin csgTest.Clear; iVar := 1000; // Query befüllt das Dateninterface di automatisch. sqlRes := sql.query('SELECT * FROM test_table ' + 'WHERE col3 = ?', [iVar], di, True, bEx); if bEx then begin with sqlres do begin First; // holt erste Zeile in di while not Eof do begin csgTest.Add(di); Next; // holt nächste Zeile in di end; csgTest.List.SaveToFile('test.txt'); Free; end; end; end; end; Ich versuche gerade die :Name-Notation einzubauen, was mal wieder an "array of const" scheitert. Schon schade, dass man auf die Variablennamen nicht zugreifen kann, dann wäre es recht einfach. Grüße, Uwe |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 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