Pro*c 中where条件后面不能接数组变量?? 怎么varchar类型的也不行啊?

ufo_ufo 2003-04-02 05:33:49
谁有个具体的例子给看看。
...全文
50 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ufo_ufo 2003-04-03
  • 打赏
  • 举报
回复
char 型的,

不管怎樣多謝你了! 結賬
zzyok 2003-04-03
  • 打赏
  • 举报
回复
你的 USER_ID是什么类型的,有可能你的:ac_user_id中含有空格,你最好把空格去掉
ufo_ufo 2003-04-03
  • 打赏
  • 举报
回复
问题找到了! 原来我在开头定义时 EXEC SQL VAR ac_user_id IS STRING(11);
把这个去掉就可以了, 真是傻 :)
ufo_ufo 2003-04-03
  • 打赏
  • 举报
回复
ac_user_id的值取到了,已经试过。 只要把where条件后面改成具体值就能取到数据,

什么问题阿?
zzyok 2003-04-03
  • 打赏
  • 举报
回复
你在strcpy(ch_password, strupr(ch_password));后面把ac_user_id打出来看看是否取到值了,我怀疑是你的ac_user_id没有初始化的原因吧
ufo_ufo 2003-04-03
  • 打赏
  • 举报
回复
printf("請輸入用戸名: ");
scanf("%10s",ch_user_id);
printf("\n請輸入密碼: ");
scanf("%10s",ch_password);

strcpy(ac_user_id, strupr(ch_user_id));
strcpy(ch_password, strupr(ch_password));

EXEC SQL SELECT PASSWORD INTO :ac_password FROM USER_INFO WHERE USER_ID = :ac_user_id;

printf("\n%s,%s",ac_user_id,ac_password);

我输入正确的值却总是取不到数据。
zzyok 2003-04-03
  • 打赏
  • 举报
回复
是c的字符串拷贝函数
你能给出源代码吗?
ufo_ufo 2003-04-03
  • 打赏
  • 举报
回复
strcpy(section_name, Section_Name);

这是什么意思?

我现在就是用char 数组可是不行,查不到数据。
zzyok 2003-04-03
  • 打赏
  • 举报
回复
使用数组变量当然可以,由于proc是c的变种所以varchar就不支持了,但是可以用char数组代替;给你一个例子:
int SelectCountOfNames(char *Section_Name)
{
EXEC SQL BEGIN DECLARE SECTION;
char section_name[21];
short count;
EXEC SQL END DECLARE SECTION;
sqlca.sqlcode = 0;

strcpy(section_name, Section_Name);

EXEC SQL SELECT COUNT(*) INTO :count FROM t_config
WHERE section_name = :section_name;
if ( sqlca.sqlcode = 1403 )
{
printf("select null from t_config where section_name = .%s\n", section_name);
return 0;
}
if ( sqlca.sqlcode != 0 )
{
printf("select t_config err.%d\n", sqlca.sqlcode);
reconnect();
return -1;
}
return count;
}
ufo_ufo 2003-04-03
  • 打赏
  • 举报
回复
nobody??

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧