oracle中比如有个表emp,有三个字段name,age,salary
执行一个select语句
有两个问题:
1.如何获取字段名,就是name,age,salary这样的东西
2.如何获取记录数
3.执行结果成功与否
对于update,delete又是怎样的呢?

解决方案 »

  1.   

    ?PROC?你到底想写pro*c(C程序)还是Procedure?
      

  2.   

    怎么没有人回答,问题补充,获取记录数最好不要搞个count来做,最好是直接从返回值中提取
      

  3.   

    EXEC SQL BEGIN DECLARE SECTION; 
      char name[32];
      int age;
    EXEC SQL ENDDECLARE SECTION; EXEC SQL SELECT name, age into :name, :age;
    if(sqlca.sqlcode == 0)
    {
    --name和age就取出来了
    }至于记录总数的,不用COUNT(*),我不知道怎么取了。应该可以通过sqlca.的一个属性来获取。
    但是我没测试。不知道。
      

  4.   

    感谢兰兰的解答
    sqlca都是返回错误和警告信息的吧,还有个sqlda,我看应用起来很复杂,也没有找到这样的例子,所以不知道怎么下手。
      

  5.   

    字段名直接使用,记录数可以用count(*)取到变量中,查询结果如果只有一条数据用into将数据取到变量,如果多条,需要用游标。根据sqlca.sqlcode的值确定是否正常执行。例如:
        EXEC SQL BEGIN DECLARE SECTION;
        int total;
        EXEC SQL END DECLARE SECTION;    EXEC SQL select count(*) into :total from emp;更详细的东西需要看书或者例程,这儿讲不清了。
      

  6.   

    宋哥,我的问题是要获取字段名称和记录数,因为我是要封装成一个服务,别人直接提供语句就可以,我不可能还要别人提供字段名,我看windows下可以用RecordSet获取字段名,记录数,所以想这里应该也有类似的方法
      

  7.   

    问题解决了,还是老老实实用sqlda,另外sqlca中当执行成功后sqlerrd[2]是始终为0的
      

  8.   

    sqlda?哪个属性是表示取出来的记录数?