esql sample

2007-11-06 22:39 来源: gaogilbert.cublog.cn 作者:gaogilbert 网友评论 0 条 浏览次数 16
 
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;
}
上一篇:Informix数据库日..    下一篇:informix onbar恢..

相关主题:esql  sample

网友评论