刚刚接触otl,发现问题重重,寻求help
首先,ODBC添加数据源(Oracle in OraHome92),测试ok,(用其他工具,如SQL Tools也可以连接访问)
然后VC2008里,工具->选项->VC++目录,添加oci\include和oci\lib
程序如下:
#include <iostream>
using namespace std;#define OTL_ODBC
#include "otlv4.h"otl_connect db;int main()
{
return 0;
}
无错,修改代码如下:
#include <string>
#include <iostream>
using namespace std;#define OTL_ODBC
#include "otlv4.h"otl_connect db;int main()
{
string str_conn("usrname/password@service IP");
try {
db.rlogon(str_conn.c_str()); // connect to Oracle
//select(); // select records from table
}
catch (otl_exception& p) { // intercept OTL exceptions
cerr << p.msg << endl; // print out error message
cerr << p.stm_text << endl; // print out SQL that caused the error
cerr << p.var_info << endl; // print out the variable that caused the error
}
db.logoff(); // disconnect from Oracle
return 0;
}运行后输出:
[Microsoft][ODBC driver for Oracle][Oracle]ORA-12154: TNS:could not resolve service name请高手帮忙看看这是什么原因?曾经运行成功过,中间只是换了一个service,再换回来就出问题了,再把ODBC数据源删掉重做,运行程序,错误又变成了
[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
这又是什么原因呢?对于数据库的这些一直都不是很清楚,请高手指点一二,谢谢!
首先,ODBC添加数据源(Oracle in OraHome92),测试ok,(用其他工具,如SQL Tools也可以连接访问)
然后VC2008里,工具->选项->VC++目录,添加oci\include和oci\lib
程序如下:
#include <iostream>
using namespace std;#define OTL_ODBC
#include "otlv4.h"otl_connect db;int main()
{
return 0;
}
无错,修改代码如下:
#include <string>
#include <iostream>
using namespace std;#define OTL_ODBC
#include "otlv4.h"otl_connect db;int main()
{
string str_conn("usrname/password@service IP");
try {
db.rlogon(str_conn.c_str()); // connect to Oracle
//select(); // select records from table
}
catch (otl_exception& p) { // intercept OTL exceptions
cerr << p.msg << endl; // print out error message
cerr << p.stm_text << endl; // print out SQL that caused the error
cerr << p.var_info << endl; // print out the variable that caused the error
}
db.logoff(); // disconnect from Oracle
return 0;
}运行后输出:
[Microsoft][ODBC driver for Oracle][Oracle]ORA-12154: TNS:could not resolve service name请高手帮忙看看这是什么原因?曾经运行成功过,中间只是换了一个service,再换回来就出问题了,再把ODBC数据源删掉重做,运行程序,错误又变成了
[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
这又是什么原因呢?对于数据库的这些一直都不是很清楚,请高手指点一二,谢谢!
odbc里面的service配错了。[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 。这里是没有配置odbc或者名字写错了。string str_conn("usrname/password@service IP");
这里的这3个字符串对应成:odbc的用户名、odbc的密码、odbc的名字,试试看?
还有,如果不用ODBC,而用Oracle的ORA,这种情况下,应该配置些什么呢?是不是只要在机器上安装Oracle的客户端,然后
#define OTL_ORA
#include "otlv4.h"string str_conn("usrname/password@servicename");
分别对应Oracle的用户名、密码和服务端IP就可以呢?
odbc用户名,密码是在哪里设置的啊?