Informix Example
包括如何调用过程
#include
$include sqlca;
$struct table
{
int no;
char name[9];
char department[31];
};
main()
{
$struct table test;
$char name[40];
$char department[40];
$database hust;
/***insert***/
$begin work;
$insert into test(no,name,department) values(999,"gao","hust");
if(sqlca.sqlcode<0)
{
printf("line=%d,sqlcode=%d\n",__LINE__,sqlca.sqlcode);
$rollback work;
}
else
{
printf("insert successfully\n");
$commit work;
}
/***cursor***/
$declare fet_cur cursor for select no,name,department from test;
$open fet_cur;
printf("sqlcode=%d\n",sqlca.sqlcode);
while(1)
{
$fetch fet_cur into $test.no,$test.name,$test.department;
if(sqlca.sqlcode != 0)
{
printf("line=%d,sqlcode=%d\n",__LINE__,sqlca.sqlcode);
break;
}
printf("%d,%s,%s\n",test.no,test.name,test.department);
}
$close fet_cur;
/***select***/
$select no,name,department into $test.no,$test.name,$test.department from test where no=259;
printf("only single select---%d,%s,%s\n",test.no,test.name,test.department);
/***store procedure---return single-using in update,insert,etc***/
$execute procedure get_test1() into $name;
if(sqlca.sqlcode!=0)
{
printf("execute procdedure filure!sqlcode=%d\n",sqlca.sqlcode);
}
else
{
printf("procedure single return:name=%s\n",name);
}
/***store procedure---return multiple-using in select***/
$declare curss cursor for execute procedure get_test(999);
$open curss;
printf("curss-sqlcode=%d\n",sqlca.sqlcode);
for(;;)
{
$fetch curss into $name,$department;
if(sqlca.sqlcode != 0)
{
printf("line=%d,sqlcode=%d\n",__LINE__,sqlca.sqlcode);
break;
}
printf("procdeure-multiple::%10s,%10s\n",name,department);
}
$close curss;
$close database;
}