免费注册 查看新帖 |

Chinaunix

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

用proc连不上数据库的问题。急! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-09-25 23:17 |只看该作者 |倒序浏览
用于登陆的代码如下:
其中用户名和密码均为ZHW ,数据库的服务名为SWBDB,在本地用net配好了,可以用sqlplus登陆上去的。

void login()
{
EXEC SQL BEGIN DECLARE SECTION;
char  username[10]  = "ZHW";
char  password[10]  = "ZHW";
char  db_name[10]   = "oracle1";
char  db_string[20] = "SWBDB";
int count = 0;
EXEC SQL END DECLARE SECTION;

EXEC SQL WHENEVER SQLERROR DO sql_error("Oracle error";
/* connect to the nondefault database using db_name */
EXEC SQL CONNECT :username IDENTIFIED BY :password
   AT :db_name USING :db_string;

EXEC SQL SELECT count(*) into :count FROM comm112;
printf("count  is %d\n",count);
}

void sql_error(msg)
    char *msg;
{
    size_t clen, fc;
    char cbuf[128];

    clen = sizeof (cbuf);
    sqlgls((char *)cbuf, (size_t *)&clen, (size_t *)&fc);

    printf("\n%s\n", msg);
    printf("Statement is--\n%s\n", cbuf);
    printf("Function code is %ld\n\n", fc);

    sqlglm((char *)cbuf, (size_t *) &clen, (size_t *) &clen);
    printf ("\n%.*s\n", clen, cbuf);
  
    EXEC SQL WHENEVER SQLERROR CONTINUE;
    EXEC SQL ROLLBACK WORK RELEASE;
    exit(EXIT_FAILURE);
}

预编译后用vc生成代码,运行结果为
ora-01012 :没有登录
奇怪的是,如果我把:login()函数中代码 EXEC SQL SELECT count(*) into :count FROM comm112;注释掉以后,就不会报这个错误。它到底登陆上没有?
请各位大虾帮助解决一下。有没有登录的范本?
先在此谢了!!!!

论坛徽章:
0
2 [报告]
发表于 2004-09-26 13:08 |只看该作者

用proc连不上数据库的问题。急!

用户名和密码必须用VARCHAR定义
详见:proc 程序设计
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP