Ich habe eine TADOQuery, die einen Parameter besitzt also etwa so:
Den Parameter setzt ich über den Source Code wie folgt:
ParaValue ist ein Variant, der den Wert eines AnsiStrings erhält.
Dies funktioniert bereits ganz gut, allerdings kann es sein, dass der AnsiString auch einen Leerstring enthält. Dies ist kein Fehler, sondern soll alle Zeilen zurückgeben, bei denen die Spalte einen Leerstring enthält. Das Problem ist, dass wenn ich den Variant auf einen Leerstring setzen, er als NULL repräsentiert wird und die Abfrage dann entsprechende gar keine Zeilen zurückliefert (Vergleich mit NULL ist immer falsch im SQL). Ich habe es schon mit:
probiert, hat aber leider nichts gebracht, gibt trotzdem noch keine Ergebniszeilen zurück.
Hat jemand eine Idee?
Code:
SELECT * FROM Tabelle WHERE Spalte = :Param
Code:
DataSet->Parameters->ParamByName("Param")->Value = ParaValue;
Dies funktioniert bereits ganz gut, allerdings kann es sein, dass der AnsiString auch einen Leerstring enthält. Dies ist kein Fehler, sondern soll alle Zeilen zurückgeben, bei denen die Spalte einen Leerstring enthält. Das Problem ist, dass wenn ich den Variant auf einen Leerstring setzen, er als NULL repräsentiert wird und die Abfrage dann entsprechende gar keine Zeilen zurückliefert (Vergleich mit NULL ist immer falsch im SQL). Ich habe es schon mit:
Code:
ParaValue.VType = varString;
Hat jemand eine Idee?
Comment