免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1898 | 回复: 6
打印 上一主题 下一主题

[C] c连接oracle [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-01 08:52 |只看该作者 |倒序浏览
#include <stdio.h>
EXEC SQL INCLUDE SQLCA;

void main()
{

    EXEC SQL BEGIN DECLARE SECTION;
    VARCHAR user[20], pass[20],tnsname[20];
    int empno;
    char  ename[20];
    int sal;
    EXEC SQL END DECLARE SECTION;

    strcpy(user.arr,"scott");
    strcpy(pass.arr,"tiger");
    strcpy(tnsname.arr,"app2");

    EXEC SQL CONNECT :user IDENTIFIED BY :pass  USING :tnsname;

    EXEC SQL DECLARE emp_cursor CURSOR FOR
    SELECT empno,ename,sal from emp;

    EXEC SQL OPEN emp_cursor;

    while(1==1)
    {
        EXEC SQL FETCH emp_cursor INTO :empno,:ename,:sal;
        printf("%d       %s       %d",empno,ename,sal);
    }
    EXEC SQL CLOSE emp_cursor;
    EXEC SQL COMMIT WORK RELEASE;
}
这段代码用proc编译可成功通过,但将得到的.c文件进行编译时这三行
   strcpy(user.arr,"scott");
    strcpy(pass.arr,"tiger");
    strcpy(tnsname.arr,"app2");
就会报三个同样的错如下:
270 E:\Dev-Cpp\main.cpp        invalid conversion from `unsigned char*' to `char*'
271 E:\Dev-Cpp\main.cpp        invalid conversion from `unsigned char*' to `char*'
272 E:\Dev-Cpp\main.cpp        invalid conversion from `unsigned char*' to `char*'

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
2 [报告]
发表于 2008-08-01 09:10 |只看该作者
报错信息说的很清楚啊

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
3 [报告]
发表于 2008-08-01 09:18 |只看该作者

回复 #1 wangxiaoguang 的帖子

类型VARCHAR改为char试试呢?

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
4 [报告]
发表于 2008-08-01 09:30 |只看该作者
很明显啊,类型不一样

另外,提醒一下lz,你的这段pro*c代码很可能溢出,写法不规范

论坛徽章:
0
5 [报告]
发表于 2008-08-01 09:44 |只看该作者
类型不匹配
二楼已经回答了

论坛徽章:
0
6 [报告]
发表于 2008-08-01 10:48 |只看该作者
改成char还是同样的报错

论坛徽章:
0
7 [报告]
发表于 2008-08-01 14:19 |只看该作者
原帖由 wangxiaoguang 于 2008-8-1 10:48 发表
改成char还是同样的报错


用(char*)强制转换试一下?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP