Entwickler-Ecke
Datenbanken - Sortierung mit SQL
Hänsel - Di 23.09.14 16:54
Titel: Sortierung mit SQL
Hallo
kann jemand helfen?
Ich arbeite mit MSSQL und möchte wehrend der Laufzeit die Tabelle filtern und sortieren. die Filterung funktioniert , nur mit order by werden Fehler angezeigt. Was habe ich hier falsch gemacht.
Delphi-Quelltext
1: 2: 3: 4: 5:
| nr:=inttoStr(Datamodule3.ADOQuery2['ID']); Datamodule3.ADOQuery31.close; Datamodule3.ADOQuery31.SQL.Text:='Select * From MDV1 where ID ='+(nr); Datamodule3.ADOQuery31.open; |
Hänsel
Moderiert von
Martok: Delphi-Tags hinzugefügt
guinnes - Di 23.09.14 17:58
Das order by muß natürlich wieder in Anführungszeichen
WasWeißDennIch - Di 23.09.14 18:08
Ich würde dringend empfehlen, wann immer möglich parametrisierte Statements zu verwenden, dann ergeben sich solche Probleme erst gar nicht.
ZeitGeist87 - Mi 24.09.14 08:02
Wie schon oft von mir erwähnt, hasse ich Statements, die so aufgebaut werden.
Dafür gibt es Paramter.
In deinem Fall sähe das so aus:
Delphi-Quelltext
1: 2:
| Datamodule3.ADOQuery31.SQL.Text:='Select * From MDV1 where ID = :nr order by WE_nr'; Datamodule3.ADOQuery31.ParamByName('nr').value:= nr; |
:nr beschreibt hier einen Parameter, welcher in der Zeile darunter über
value mit der dazu passenden Variable beschrieben wird.
Vorteil der Parametrisierung sind zum Einen die Übersichtlichkeit und das sich Nicht-Kümmern, dass die Parameter im "richtigen" Format vorliegen. In deinem Fall müsstest du alles als
String konvertiert übergeben.
Dein spezielles Statement korrigiere ich dir dennoch, damit du weißt, wo der Fehler liegt/lag.
Delphi-Quelltext
1:
| Datamodule3.ADOQuery31.SQL.Text:='Select * From MDV1 where ID = ' + nr + ' order by WE_nr'; |
Gruß,
Stefan
Hänsel - Mo 06.10.14 09:10
Danke für die Hinweise.
Hänsel
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!