C ++将VS连接到Oracle

时间:2013-12-24 19:49:53

标签: c++ oracle visual-studio

#include<iostream>
#include<iomanip>
#include<occi.h>
#include<string>
using namespace std;
using namespace oracle::occi;
int main (void){
    string utilizador ="B3_1";
    string password ="B3_1";
    string bd ="gandalf.dei.isep.ipp.pt:1521/pdborcl";
    try{
        Environment *env;
        Connection *ligacao;
        Statement *instrucao;
        env = Environment::createEnvironment (Environment::DEFAULT);
        ligacao = env->createConnection (utilizador, password, bd);
        cout <<"BDdad: a ligar ..."<< endl;

    }catch(SQLException erro){
        cerr <<"Erro: "<< erro.getMessage () << endl;}
    cin.get();
    return 0;
}

对于这个大学项目,我需要将Visual Studio 2012连接到Oracle,以便通过VS与数据库进行交互。问题是,我的所有工作组都可以连接而没有任何错误,但在我的情况下,它略有不同。我在行"env = Environment::createEnvironment (Environment::DEFAULT);"中得到一个SQL Exeception。错误代码为1804,显示的消息为"error while trying to retrieve text for error ORA-01804"。我认为这可能是路径,但我和我的朋友一样,他们可以连接,但我没有。这件事发生过或者是正常的吗?

修改 我的老师建议我更改Visual Studio 2012的版本。我有终极版本,他告诉使用Express查看是否有效。已经这样做了,结果是一样的。我查看了整个互联网,但找不到我问题的直接答案。

1 个答案:

答案 0 :(得分:0)

错误代码#32104表示调用中发生错误,但无法检索实际错误消息。基本上这意味着Environment::createEnvironment失败然后尝试获取与错误相关联的消息。当它找不到时,会返回32104错误。

因此,可能难以确定错误的确切原因。我建议您确保在shell环境中定义了ORACLE_HOMEORACLE_SID