void cursor()
{
EXEC SQL DECLARE emp_cursor SCROLL CURSOR for
select empno,ename,sal from emp;
EXEC SQL OPEN emp_cursor;
EXEC SQL WHENEVER NOT FOUND do break;
for(;;)
{
printf("\nF:第一行,P:前一行,N:下一行,L:最后一行");
printf("C:当前行,x:退出\n请输入具体的操作:");
scanf("%d",&action);
fflush(stdin);
switch(action)
{
case 'F':
case 'f':
EXEC SQL FETCH FIRST emp_cursor INTO :eno,:name,:salary;break;
case 'P':
case 'p':
EXEC SQL FETCH PRIOR emp_cursor INTO :eno,:name,:salary;break;
case 'N':
case 'n':EXEC SQL FETCH NEXT emp_cursor INTO :eno,:name,:salary;break;
case 'L':
case 'l':EXEC SQL FETCH LAST emp_cursor INTO :eno,:name,:salary;break;
case 'C':
case 'c':EXEC SQL FETCH CURRENT emp_cursor INTO :eno,:name,:salary;break;
case 'X':
case 'x':EXEC SQL CLOSE emp_cursor;return;
}
printf("雇员名:%s,工资:%4.0f\n",name,salary);
}
}