[此贴子已经被作者于2007-7-3 23:17:49编辑过]
要命,这个不算是基础语句了好不好。看你连接的是什么数据库,搞不好还要写驱动。俺也不懂啊,不过用VB拉什么的就比较容易拉
我用的是informix数据库,直接编译 *.ec文件,数据库语句直接嵌入到C程序中.
不过需要有UNIX环境和informix数据库,首先编辑*.ec文件例如
/********************test.ec************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <curses.h>
$include sqlca;
$struct test
{
char num[7];
char mc[31];
};
void i_xy(int x,int y) /* UNIX中光标定位,windows不可以 */
{
printf("%c%c%d;%dH",'\033','[',x,y);
}
int main()
{
EXEC SQL begin declare section; /* 定义数据库变量 */
struct test stTest;
char inum[7];
EXEC SQL end declare section;
$database testdb; /* 打开数据库 */
memset(&stTest,0,sizeof(struct test));
memset(inum,0,sizeof(inum));
system("clear");
i_xy(7,30);
printf("请输入交易码:[ ]");
i_xy(7,44);
scanf("%s",&inum);
/* 定义游标用于查找p_test数据表中和inum匹配的记录 */
EXEC SQL declare test_cur cursor for select * from p_test where num matches :inum;
EXEC SQL open test_cur;
EXEC SQL fetch test_cur into :stTest; /* 从游标中取出一条记录保存到stTest中 */
while(sqlca.sqlcode == 0) /* 输出所有符合条件的记录 */
{
printf("\n\t num=[%s] mc=[%s]",stTest.num,stTest.mc);
memset(&stTest,0,sizeof(struct test));
EXEC SQL fetch test_cur into :stTest;
}
printf("\n");
EXEC SQL close test_cur;
EXEC SQL free test_cur;
$close database;
return 0;
}
/*************************************************/
编译: esql -o test test.ec
[此贴子已经被作者于2007-9-25 17:10:08编辑过]