2011-11-07 53 views
-1

我的C程序有一个嵌入式sql查询。该程序在Windows上运行并查询Oracle数据库。 该查询与EXEC SQL SELECT类似... 我需要在此处添加一个检查以了解查询是否返回零行。在选择查询中检查零行

基本上我想设置本地valiable知道我的查询返回行和 相应处理这种情况。

我怎样才能添加。我知道可以使用EXISTS语句。但我没有得到 如何在嵌入式SQL中使用它。

感谢您的任何帮助。

+2

显示C代码使用的是捕获查询的结果。 – arb

回答

0

使用SELECT COUNT(*) FROM ...和比较结果为0。

1

使用SQLCA结构

EXEC SQL include "sqlca.h" 
#define NO_ROWS_FOUND (sqlca.sqlcode==1403) 
EXEC SQL BEGIN DECLARE SECTION; 
    int val=0; 
    short ind=0; 
EXEC SQL END DECLARE SECTION; 

EXEC SQL 
    select value 
    int :val :ind 
     from mytable where rownum=1; 
if(NO_ROWS_FOUND) 
    printf("No rows found\n"); 
+0

谢谢。这有所帮助。 – irappa