社区
Oracle
帖子详情
Pro*c 中where条件后面不能接数组变量?? 怎么varchar类型的也不行啊?
ufo_ufo
2003-04-02 05:33:49
谁有个具体的例子给看看。
...全文
90
10
打赏
收藏
Pro*c 中where条件后面不能接数组变量?? 怎么varchar类型的也不行啊?
谁有个具体的例子给看看。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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??
Pro
*C介绍-内嵌SQL
本文介绍了
Pro
*C,一种支持内嵌SQL的C语言预处理器,主要用于Oracle数据库操作。内容涵盖
Pro
*C语法、SQL语句、预处理指令、宿主
变量
的使用,包括基础
类型
、指针、结构、
数组
和指示器
变量
。还讨论了数据
类型
同等化、动态SQL、事务处理、错误处理及SQL通信区(SQLCA)。示例程序和C++用户指南进一步阐述了
Pro
*C的使用。预编译器识别的特殊数据
类型
VARCHAR
[n]用于表示变长字符串。要注意宿主
变量
的限制,如
不能
指定为寄存器存储
类型
,且在C表达式
中
不能
使用:引用。
Pro
*c
Pro
*C是Oracle提供的一种将C语言与SQL结合的开发工具,允许在C程序
中
嵌入SQL语句,实现高效的数据访问。它通过在C程序
中
声明SQL
变量
并使用通信区进行数据库交互,支持动态创建、修改和删除表,以及事务处理。
Pro
*C程序包含应用程序首部(定义ORACLE
变量
)和应用程序体(包含SQL语句和C语言控制结构)。在使用时,需注意SQL
变量
的声明、指示器
变量
的使用、指针SQL
变量
、
数组
SQL
变量
以及
VARCHAR
变量
的处理。此外,
Pro
*C还支持游标来处理多行查询,通过声明、打开、关闭和获取数据的步骤操作游标。错误处理通常通过检查SQLCA结构体的状态码进行。
pro
*c的使用
本文详细介绍
Pro
*C程序的概念、组成及开发流程,包括SQL通讯区、宿主
变量
声明、数据库连
接
、SQL语句执行等方面,同时深入探讨了游标使用、错误处理及存储过程调用等内容。
转贴[
pro
*c的使用]
本文介绍了
Pro
*C程序,它将C语言与SQL结合用于访问ORACLE数据库。阐述了
Pro
*C程序的概述、组成结构,包括应用程序首部和体的各部分内容,还说明了错误检测和恢复方法、动态定义语句
类型
,最后介绍了
Pro
*C程序的编译和运行步骤。
Pro
*C介绍--内嵌SQL[转载]
本文介绍Oracle
Pro
*C环境下的嵌入式SQL技术,包括语法、预处理指令、宿主
变量
、动态SQL及错误处理等内容。通过示例程序演示如何在C/C++程序
中
执行SQL语句。
Oracle
17,134
社区成员
55,258
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章