On Sun, Apr 16, 2000 at 11:57:38AM -0700, Matthew Denny wrote:
>
> I know this question is probably fairly elementary, but I could not
> find the answer in the docs or mailing list archives. How does one handle
> NULL values in the embedded SQL interface? For example, if I have a
> statement:
>
> exec sql insert into test_table values(:foo, :x, :y)
>
> and foo represents a CHAR attribute (represented by a string in C) that I
> want to set to NULL, how do I go about doing this?
There are two ways :
exec sql insert into test_table values (NULL,:x,:y) or more properly
define indicator variable in DECLARE section and use it to insert null value
e.g.
EXEC SQL BEGIN DECLARE SECTION; char foo[10]; int x; int y; int indicator; EXEC SQL END DECLARE SECTION;
..... indicator=-1; EXEC SQL INSERT INTO test_table VALUES (:foo:indicator,:x,:y);
> Similarly, how do
> I tell that a value put into a variable by a fetch call is NULL or
> not?
>
You can do it the same way:
EXEC SQL SELECT foo,x,y INTO :foo:indicator,:x,:y ......
and then check for indicator value.
GL
Ivo.