在PRO-C中,student表中有一Student_ID字段:char StudentID[50] = 's001';select * from student
where Student_ID = :StudentID;
请问可以这样直接比较是否相等吗?我做了好像不行啊
用Student_ID = to_char(:StudentID);也不行
请问有什么解决方法?谢谢!
where Student_ID = :StudentID;
请问可以这样直接比较是否相等吗?我做了好像不行啊
用Student_ID = to_char(:StudentID);也不行
请问有什么解决方法?谢谢!
c语言里面要这样:
char StudentID[50] = "s001";
不是单引号。
请问where Student_ID = :StudentID;
这个写法可行吗?
还是PRO-C的sql语句中不支持char []的等值比较
char StudentID[50] = "s001\0";
或
char *StudentID="s001";
试试看。给你一个例子:
/*add by lht 20070725 获取参数值*/
long tblGetParamValue(char *sSwitchId,char *sSwitchValue)
{
char sValueTemp[20+1];
EXEC SQL WHENEVER SQLERROR DO sql_error( __LINE__ , __FILE__); EXEC SQL
select switch_value
into :sValueTemp
from card_switch
where switch_id=:sSwitchId;
strcpy(sSwitchValue,sValueTemp);
if (SQL_DATA_NOT_FOUND)
{
return(DATA_NOT_FOUND);
}
if (SQL_ERROR) return (sqlca.sqlcode);
return(NO_ERROR);}
有一个细节,就是我定义了char StudentID[50]之后
后面对它的赋值是通过游标fetch into ...做的,之后我把它打印出来是正确的
再后来就开始做上面的事了。char StudentID[50];
.....
EXEC SQL FETCH VOD_MONTH_DISCOUNT_ITEM_CUR INTO :StudentID;//在这边赋值
printf("\n====RocheFoo test====sProductID = %s \n", StudentID);//测试值正确
select ... where ...and Student_ID = :StudentID我把:StudentID替换成具体的值在PL\SQL下是有结果的,但是程序却没有结果!