Received: from ultra.hr (qmailr@pp1m20.zadarnet.hr [195.29.197.160]) by hub.org (8.9.3/8.9.3) with SMTP id RAA36763 for ; Sun, 16 Apr 2000 17:04:19 -0400 (EDT) (envelope-from ivo@ultra.hr) Received: (qmail 1136 invoked by uid 1000); 16 Apr 2000 21:03:12 -0000 Date: Sun, 16 Apr 2000 23:03:12 +0200 From: Ivo Simicevic To: pgsql-interfaces@postgreSQL.org Subject: Re: a couple of newbie question Message-ID: <20000416230312.A1117@ultra.hr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.95.3i X-Archive-Number: 200004/92 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.