informix与unix
/*
文件: MyInfPro.ec
*/
#include <stdio.h>
#include <sqlca.h>
#include <sqlda.h>
#include <sqltypes.h>
#include <sqlstype.h>
main()
{
EXEC SQL INCLUDE SQLCA; // notice
EXEC SQL BEGIN DECLARE SECTION;
char *string1;
char str1[ 10 ];
char str2[ 10 ];
EXEC SQL END DECLARE SECTION;
EXEC SQL CREATE DATABASE example1;
sleep(10);
DATABASE example1;
if( SQLCODE == SUCCESS )
{
EXEC SQL CREATE TABLE Student
(
alarm char(6),
sname char(10)
);
}
EXEC SQL INSERT INTO Student VALUES( "aaa", "aaa");
EXEC SQL INSERT INTO Student VALUES( "bbb", "bbb");
EXEC SQL INSERT INTO Student VALUES( "ccc", "ccc");
EXEC SQL DECLARE fet_cur CURSOR FOR
SELECT alarm, sname FROM Student;
EXEC SQL OPEN fet_cur;
printf( "SQLCODE %d", SQLCODE );
for(;;)
{
memset( str1, 0x00, sizeof( str1 ) );
memset( str2, 0x00, sizeof( str2 ) );
EXEC SQL FETCH fet_cur INTO :str1, :str2;
if( SQLCODE != SUCCESS )
{
printf( "Line %d, SQLCODE = %d ", __LINE__, SQLCODE );
break;
}
printf( " alarm = %s , sname = %s ", str1, str2 );
}
EXEC SQL CLOSE fet_cur;
EXEC SQL CLOSE DATABASE;
return 0;
}
ykt> esql MyInfPro.ec
提示的错误信息:
esqlc: "MyInfPro.ec", line 23: Error -33051: Syntax error on identifier or symbol 'example'.
------解决方案--------------------------------------------------------
我试了下,报的不是这个错。我的编译环境下需要如下变动:
增加如下
#define SUCCESS 0
/*
文件: MyInfPro.ec
*/
#include <stdio.h>
#include <sqlca.h>
#include <sqlda.h>
#include <sqltypes.h>
#include <sqlstype.h>
main()
{
EXEC SQL INCLUDE SQLCA; // notice
EXEC SQL BEGIN DECLARE SECTION;
char *string1;
char str1[ 10 ];
char str2[ 10 ];
EXEC SQL END DECLARE SECTION;
EXEC SQL CREATE DATABASE example1;
sleep(10);
DATABASE example1;
if( SQLCODE == SUCCESS )
{
EXEC SQL CREATE TABLE Student
(
alarm char(6),
sname char(10)
);
}
EXEC SQL INSERT INTO Student VALUES( "aaa", "aaa");
EXEC SQL INSERT INTO Student VALUES( "bbb", "bbb");
EXEC SQL INSERT INTO Student VALUES( "ccc", "ccc");
EXEC SQL DECLARE fet_cur CURSOR FOR
SELECT alarm, sname FROM Student;
EXEC SQL OPEN fet_cur;
printf( "SQLCODE %d", SQLCODE );
for(;;)
{
memset( str1, 0x00, sizeof( str1 ) );
memset( str2, 0x00, sizeof( str2 ) );
EXEC SQL FETCH fet_cur INTO :str1, :str2;
if( SQLCODE != SUCCESS )
{
printf( "Line %d, SQLCODE = %d ", __LINE__, SQLCODE );
break;
}
printf( " alarm = %s , sname = %s ", str1, str2 );
}
EXEC SQL CLOSE fet_cur;
EXEC SQL CLOSE DATABASE;
return 0;
}
ykt> esql MyInfPro.ec
提示的错误信息:
esqlc: "MyInfPro.ec", line 23: Error -33051: Syntax error on identifier or symbol 'example'.
------解决方案--------------------------------------------------------
我试了下,报的不是这个错。我的编译环境下需要如下变动:
增加如下
#define SUCCESS 0
本文展示了一个使用Informix预编译器(esqlc)在Unix环境下创建数据库、表及进行数据插入和查询的示例程序。通过示例程序演示了如何在C语言中嵌入SQL语句来实现数据库的基本操作。

被折叠的 条评论
为什么被折叠?



