Wenn man mit Parametern arbeitet (was einfach einfacher ist), dann muss man die Parameter im SQL-Text aber auch angeben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| MyQuery.SQL.Text := 'Select * from Foo Where Field1 =:MyField and Field2 like :AnotherField'; MyQuery.Parameters.ParamByName ('MyField').DataType := ftInteger; MyQuery.Parameters.ParamByName ('Another').DataType := ftString; MyQuery.Parameters.ParamValues ['MyField'] := 12345; MyQuery.Parameters.ParamValues ['AnotherField'] := '%'+Edit1.Text; MyQuery.Active := True; |
Klar, handgebissene SQL-Statements sind kompakt, aber spätestens beim Formatieren eines Floats oder Datums wird man Probleme bekommen, weil jeder PC und jede DB das anders macht bzw. erwartet. FloatToStr liefert vielleicht ein Komma als Dezimaltrennzeichen, die DB erwartet jedoch einen Punkt. Und wie ist das beim Datum? Mit Quotes? Ohne? DD-MM-YYYY, oder MM/DD/YYYY, oder DD.MMM.YY, oder wie?
Bei einer Verwendung einer parametrisierten Abfrage gibt man das Formatierungsproblem demjenigen, der was davon versteht, nämlich dem Provider/DB-Treiber o.ä.
Na denn, dann. Bis dann, denn.