- 论坛徽章:
- 0
|
用于登陆的代码如下:
其中用户名和密码均为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;注释掉以后,就不会报这个错误。它到底登陆上没有?
请各位大虾帮助解决一下。有没有登录的范本?
先在此谢了!!!! |
|