大家对使用滚动游标有没有什么经验,我在用的时候碰上了麻烦,求大家帮忙解决
这是部分源程序
内容有点乱,有烦大家了void data()
{
char action;
EXEC SQL DECLARE rolldata_cursor SCROLL CURSOR FOR
SELECT time,temp,strain,strate,stat FROM rolling;
EXEC SQL OPEN rolldata_cursor;
EXEC SQL WHENEVER NOT FOUND DO break;
for(;;)
{
printf("\nF:第一行,p:前一行,N:下一行,L:最后一行");
printf("C:当前行,X:退出\n请输入具体操作:");
scanf("%c",&action);
fflush(stdin);
switch(action)
{
case 'F';
case 'f';
EXEC SQL FETCH FIRST rolldata_cursor INTO :time1,:temp1,:strain1,:strate1,:stat1;
break;
case 'X';
case 'x';
EXEC SQL CLOSE rolldata_cursor;
return;
}
printf("轧制时间:%f,轧制温度:%f,应变:%f,应变速率:%f,状态:%c\n",time1,temp1,strain1,strate1,stat1);
}
EXEC SQL CLOSE rolldata_cursor;}
预编译时出现下面错误:
错误发生在行40,列34,文件D:\程序调试\demo\rolling1\rolldata.pc
EXEC SQL DECLARE rolldata_cursor SCROLL CURSOR FOR
.................................1
PCC-S-02201, 出现符号 "SCROLL"在需要下列之一时:
.@cursor,database,
statement,table,type,partition,
符号 "table," 被替换为 "SCROLL" 后继续。语法错误出现在54行,29列,文件D:\程序调试\demo\rolling1\rolldata.pc:
错误发生在行54,列29,文件D:\程序调试\demo\rolling1\rolldata.pc
EXEC SQL FETCH FIRST rolldata_cursor INTO :time1,:temp1,:strain1,:strate1
,:stat1;
............................1
PCC-S-02201, 出现符号 "rolldata_cursor"在需要下列之一时:
into,using,
这是部分源程序
内容有点乱,有烦大家了void data()
{
char action;
EXEC SQL DECLARE rolldata_cursor SCROLL CURSOR FOR
SELECT time,temp,strain,strate,stat FROM rolling;
EXEC SQL OPEN rolldata_cursor;
EXEC SQL WHENEVER NOT FOUND DO break;
for(;;)
{
printf("\nF:第一行,p:前一行,N:下一行,L:最后一行");
printf("C:当前行,X:退出\n请输入具体操作:");
scanf("%c",&action);
fflush(stdin);
switch(action)
{
case 'F';
case 'f';
EXEC SQL FETCH FIRST rolldata_cursor INTO :time1,:temp1,:strain1,:strate1,:stat1;
break;
case 'X';
case 'x';
EXEC SQL CLOSE rolldata_cursor;
return;
}
printf("轧制时间:%f,轧制温度:%f,应变:%f,应变速率:%f,状态:%c\n",time1,temp1,strain1,strate1,stat1);
}
EXEC SQL CLOSE rolldata_cursor;}
预编译时出现下面错误:
错误发生在行40,列34,文件D:\程序调试\demo\rolling1\rolldata.pc
EXEC SQL DECLARE rolldata_cursor SCROLL CURSOR FOR
.................................1
PCC-S-02201, 出现符号 "SCROLL"在需要下列之一时:
.@cursor,database,
statement,table,type,partition,
符号 "table," 被替换为 "SCROLL" 后继续。语法错误出现在54行,29列,文件D:\程序调试\demo\rolling1\rolldata.pc:
错误发生在行54,列29,文件D:\程序调试\demo\rolling1\rolldata.pc
EXEC SQL FETCH FIRST rolldata_cursor INTO :time1,:temp1,:strain1,:strate1
,:stat1;
............................1
PCC-S-02201, 出现符号 "rolldata_cursor"在需要下列之一时:
into,using,
改为:
EXEC SQL DECLARE rolldata_cursor FOR SELECT time,temp,strain,strate,stat FROM rolling;
EXEC SQL FETCH FIRST rolldata_cursor INTO :time1,:temp1,:strain1,:strate1,:stat1;
改成:
EXEC SQL FETCH rolldata_cursor INTO :time1,:temp1,:strain1,:strate1,:stat1;
EXEC SQL DECLARE c CURSOR FOR s;
EXEC SQL OPEN c;
EXEC SQL FETCH c INTO :date ; EXEC SQL CLOSE c;
printf("date=%s\n",date); 先要分析! PREPARE
我写成了
EXEC SQL PREPARE SELECT time,temp,strain,strate,stat FROM rolling FROM :sql;
这样肯定不行,但我好像没办法
上面的s应该是一个字符串吧