SQLSetParamNull (Funktion)
- Last UpdatedSep 24, 2024
- 2 minute read
Die Funktion SQLSetParamNull() setzt den Wert des angegebenen Parameters auf NULL.
Kategorie
SQL
Syntax
SQLSetParamNull(AnweisungsID, Parameternummer, Parametertyp, Genauigkeit, Maßstab)
Argumente
AnweisungsID
Integer-Wert, der eine SQL-Anweisung innerhalb einer Abfrage bestimmt.
Parameternummer
Die Nummer des Parameters in der SQL-Anweisung, die durch das Argument StatementID bezeichnet wird.
Parametertyp
Integer-Wert, der angibt, welchen Datentyp der die angegebene ParameterNumber hat. Für den ParameterType sind folgende Werte zulässig:
0: String
1: Datum/Zeit
2: Ganzzahl
3: Gleitkommazahl
4: Dezimalzahl
Genauigkeit
Die Genauigkeit des angegebenen Parameters (bzw. seines Datentyps).
Maßstab
Maßstab des Dezimalwerts. Dieser Wert muss nur dann angegeben werden, wenn er für den Typ des auf NULL zu setzenden Parameters relevant ist.
Anmerkungen
Der Vergleich mit dem NULL-Wert wird von der Option ANSI_NULLS in SQL Server gesteuert. In SQL Server 7.0 wird diese Option aufgelöst, wenn das Objekt erstellt wird (nicht wenn die Abfrage ausgeführt wird). Wenn eine gespeicherte Prozedur in SQL Server 7.0 erstellt wird, ist diese Option standardmäßig auf ON; daher gibt eine Klausel wie „WHERE MyField = NULL“ immer NULL (FALSE) zurück, und es wird keine Zeile von einer SELECT-Anweisung mit dieser Klausel zurückgegeben.
Damit der Vergleichsoperator = oder <> TRUE oder FALSE zurückgibt, müssen Sie diese Option auf OFF setzen, wenn Sie eine gespeicherte Prozedur erstellen. Wenn ANSI_NULLS nicht auf OFF gesetzt wird, funktioniert SQLSetParamNull() nicht wie erwartet. In diesem Fall sollten Sie bei einem Vergleich mit einem NULL-Wert die Syntax „WHERE MyField IS NULL“ oder „WHERE MyField IS NOT NULL“ verwenden.
Beispiel
Die folgende gespeicherte Prozedur gibt alle Zeilen in der Produkttabelle zurück, bei denen ProduktName nicht NULL ist.
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE sp_TestNichtNull @ProduktParam varchar(255)
AS SELECT * FROM Produkte WHERE ProduktName @ProduktParam
GO
SET ANSI_NULLS ON
GO
InTouch kann die folgenden SQL Access-Skripts ausführen.
Ergebnis = SQLSetStatement(VerbindungsID, "sp_TestNichtNull");
Ergebnis = SQLPrepareStatement(VerbindungsID, AnweisungsID);
Ergebnis = SQLSetParamNull(AnweisungsID, 1, 0, 0, 0);
Ergebnis = SQLExecute(VerbindungsID, Bindeliste, AnweisungsID);
Ergebnis = SQLFirst(VerbindungsID);
Ergebnis = SQLClearStatement(VerbindungsID, AnweisungsID);
Siehe auch
SQLPrepareStatement()