Wenn Ihr Anwendungsprogramm NULL-Werte oder DEFAULT-Werte verarbeiten soll oder wenn beim Austausch von Werten zwischen Host-Variablen und der Datenbank Wertverkürzungen auftreten können, dann sollten Sie in der eingebetteten SQL-Anweisung zusätzlich zur Host-Variablen eine Indikatorvariable angeben.
Beachten Sie dabei die Regeln für Indikatorvariablen.
Der Wert der Indikatorvariablen heißt Indikatorwert und erfüllt die folgenden Aufgaben:
· Er gibt Aufschluss über die korrekte Verarbeitung der zugehörigen Host-Variablen. Fragen Sie ihn deshalb nach der Bearbeitung der SQL-Anweisung ab.
· Er dient der Übertragung von NULL-Werten in die Datenbankinstanz.
· Er dient der Übertragung von DEFAULT-Werten in die Datenbankinstanz.
· Er dient in GETVAL-Anweisungen und PUTVAL-Anweisungen dem Ignorieren einzelner LONG-Spalten.
Wenn durch eine SELECT-Anweisung oder FETCH-Anweisung Werte aus Spalten, in denen NULL-Werte auftreten können, in Host-Variablen übertragen werden, dann müssen Sie in jedem Fall eine Indikatorvariable angeben. Anderenfalls erzeugt der C/C++-Precompiler beim Durchführen des Precompiler-Laufs mit der Precompiler-Option check eine Warnung, und Sie erhalten zur Laufzeit bei der Selektion eines NULL-Wertes eine Fehlermeldung (sqlcode = -809).
In dynamischen SQL-Anweisungen mit Deskriptor erfüllt die Komponente hostindicator eines sqlvar-Eintrags die gleiche Aufgabe wie eine Indikatorvariable.