- 论坛徽章:
- 0
|
使用proc极方便
下面是一个连接oracle的函数,支持tns
#include <sqlca.h>
EXEC SQL INCLUDE SQLDA;
EXEC SQL INCLUDE ORACA;
EXEC ORACLE OPTION (ORACA=YES);
int ConnectDbByTns(char *psUserName, char *psPasswd, char *psTnsName)
{
EXEC SQL BEGIN DECLARE SECTION;
char lsUserName[100];
char lsPasswd[500];
char lsTnsName[100];
EXEC SQL END DECLARE SECTION;
strcpy(lsUserName, psUserName);
strcpy(lsPasswd, psPasswd);
strcpy(lsTnsName, psTnsName);
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL WHENEVER NOT FOUND CONTINUE;
EXEC SQL WHENEVER SQLWARNING CONTINUE;
oraca.orastxtf = ORASTFERR; /* save SQL statement */
if (strlen(lsTnsName) == 0)
{
EXEC SQL CONNECT :lsUserName identified by :lsPasswd;
}
else
EXEC SQL CONNECT :lsUserName identified by :lsPasswd using :lsTnsName;
if (sqlca.sqlcode!=0)
{
printf("连接数据库失败!user:%s sqlcode:%d", lsUserName, sqlca.sqlcode);
return -1;
}
printf("Database connected.\n");
return 0;
} |
|