Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ InTouch HMI

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()

In This Topic