#include "sqltypes.h" #include $include ../regression; $define NUMBER 12; static void test_null(int type, char *ptr) { printf("null: %d\n", risnull(type, ptr)); } int main(void) { $char c[] = "abc"; $short s = 17; $int i = -74874; $bool b = 1; $float f = (float) 3.71; $long l = 487444; $double dbl = 404.404; $decimal dec; $date dat; $timestamp tmp; ECPGdebug(1, stderr); $whenever sqlerror do sqlprint(); $connect to REGRESSDB1; $create table test(id int, c char(10), s smallint, i int, b bool, f float, l bigint, dbl double precision, dec decimal, dat date, tmp timestamptz); $commit; $insert into test (id, c, s, i, b, f, l, dbl) values ( 1, :c, :s, :i, :b, :f, :l, :dbl ); $commit; rsetnull(CCHARTYPE, (char *) c); rsetnull(CSHORTTYPE, (char *) &s); rsetnull(CINTTYPE, (char *) &i); rsetnull(CBOOLTYPE, (char *) &b); rsetnull(CFLOATTYPE, (char *) &f); rsetnull(CLONGTYPE, (char *) &l); rsetnull(CDOUBLETYPE, (char *) &dbl); rsetnull(CDECIMALTYPE, (char *) &dec); rsetnull(CDATETYPE, (char *) &dat); rsetnull(CDTIMETYPE, (char *) &tmp); $insert into test (id, c, s, i, b, f, l, dbl, dec, dat, tmp) values ( 2, :c, :s, :i, :b, :f, :l, :dbl, :dec, :dat, :tmp ); $commit; printf("first select\n"); $select c, s, i, b, f, l, dbl, dec, dat, tmp into :c, :s, :i, :b, :f, :l, :dbl, :dec, :dat, :tmp from test where id = 1; test_null(CCHARTYPE, (char *) c); test_null(CSHORTTYPE, (char *) &s); test_null(CINTTYPE, (char *) &i); test_null(CBOOLTYPE, (char *) &b); test_null(CFLOATTYPE, (char *) &f); test_null(CLONGTYPE, (char *) &l); test_null(CDOUBLETYPE, (char *) &dbl); test_null(CDECIMALTYPE, (char *) &dec); test_null(CDATETYPE, (char *) &dat); test_null(CDTIMETYPE, (char *) &tmp); printf("second select\n"); $select c, s, i, b, f, l, dbl, dec, dat, tmp into :c, :s, :i, :b, :f, :l, :dbl, :dec, :dat, :tmp from test where id = 2; test_null(CCHARTYPE, (char *) c); test_null(CSHORTTYPE, (char *) &s); test_null(CINTTYPE, (char *) &i); test_null(CBOOLTYPE, (char *) &b); test_null(CFLOATTYPE, (char *) &f); test_null(CLONGTYPE, (char *) &l); test_null(CDOUBLETYPE, (char *) &dbl); test_null(CDECIMALTYPE, (char *) &dec); test_null(CDATETYPE, (char *) &dat); test_null(CDTIMETYPE, (char *) &tmp); $drop table test; $commit; $close database; return 0; }