大家对使用滚动游标有没有什么经验,我在用的时候碰上了麻烦,求大家帮忙解决
这是部分源程序
内容有点乱,有烦大家了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,

解决方案 »

  1.   

    EXEC SQL DECLARE rolldata_cursor SCROLL CURSOR FOR SELECT time,temp,strain,strate,stat FROM rolling;
    改为:
    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;
      

  2.   

    oracle8 还是 oracle9 ???oracle8不支持 scroll cursor
      

  3.   

    EXEC SQL PREPARE s FROM :sql;
    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
      

  4.   

    好像不行啊
    我写成了
    EXEC SQL PREPARE SELECT time,temp,strain,strate,stat FROM rolling FROM :sql; 
    这样肯定不行,但我好像没办法
    上面的s应该是一个字符串吧