Was passiert, wenn ich ParamByName für einen Parameter aufruft, der nicht existiert?

8

Ich bin sehr neu in Delphi und habe den folgenden Code erhalten (habe einige irrelevante Teile weggelassen), für den ich versuche zu verstehen, was er tut:

%Vor%

In einer anderen Datei wird diese Abfrage verwendet, aber ein Parameter, der in der Abfrage nicht definiert ist, wird hinzugefügt.

%Vor%

Ändert dieser Parameter 'part' irgendetwas an der getroffenen Auswahl? Mit anderen Worten: Wird die SQL-Abfrage automatisch in die folgenden geändert?

%Vor%     
Maza89 16.01.2012, 12:31
quelle

3 Antworten

8

Das bedeutet, dass die SQL-Anweisung zur Laufzeit möglicherweise geändert wird. Wenn diese Abfrage verwendet wird, enthält die SQL-Datei bereits AND part = :part .

Wenn die SQL-Anweisung diesen zusätzlichen Parameter part nicht enthält, wird beim Zuweisen von ParamByName('part').Value := 1 eine Exception ausgelöst.

Ich nehme an, Sie haben SelectCosts reference nicht verwechselt (das ist in DM_HRV und nicht in anderen DM).

    
kobik 16.01.2012, 12:50
quelle
4

Die folgende Anweisung in Ihrem Beitrag fügt keinen Parameter hinzu, sie legt ihren Wert fest:

%Vor%

Um einen Parameter zur Laufzeit hinzuzufügen, verwenden Sie CreateParam wie folgt:

%Vor%

Die Abfrage wird nicht automatisch geändert, Sie müssen das selbst tun.

In Ihrem ersten Snip sind ParamType und InputType nicht definiert. Sie können dies in der IDE ändern, indem Sie auf den Eigenschafteneditor der Parameterliste (Params) zugreifen und diese Werte aktualisieren.

    
John Easley 16.01.2012 13:26
quelle
0

Das Hinzufügen eines neuen Parameters ändert die Abfrage nicht. Das musst du selbst tun.

    
Mikael Eriksson 16.01.2012 12:34
quelle

Tags und Links