由于机器配置和装载软件比较多的原因,我的机器装不起Oracle服务器,只能远程连接局域网里面的一台Oracle服务器。
以前根本没有用过Oracle,在网上找了一下,发现VC连接Oracle代码如下:
//创建Oracle连接
Datasource=dlg.m_name;
Username=dlg.m_user;
Password=dlg.m_password;
   _bstr_t strMissing(L"");      //Variable for missing function parameters
   _bstr_t strConnectionString;  

//Initialise the connection string for database
strConnectionString = "Provider=OraOLEDB.Oracle;Data Source="+ Datasource +
"; User Id=" + Username +
";Password="+ Password ;
//Create instance of ADODB connection object
m_pConnection.CreateInstance("ADODB.Connection");
 
//Alternate way of creating instance
//m_cpConnection.CreateInstance(__uuidof(Connection));

//Set the connection string for ADODB connection object
m_pConnection->ConnectionString = strConnectionString;

try
{
//Open Connection to database. Use strMissing for parameters that are not required
//to be passed
m_pConnection->Open(strMissing,strMissing,strMissing,-1);
}
//Catch COM errors
catch( _com_error &e)
{
// get info from _com_error
AfxMessageBox(e.Source() +" : " +e.Description() +" in OpenDatabase() function");
return FALSE;
}
问题是这个连接字符串里面根本就没有指定IP地址这一项。那怎么样通过我们的程序访问局域网的Oracle数据库呢?
在网上找到一些资料,貌似是说程序要连接Oracle的话还要装载Oracle的客户端。然后新建一个远程连接的数据源,才能访问。但是我请教了做java开发的同学,他说java可以像SqlServer一样连接Oracle。搞的我头都大了。大家有用VC做个Oracle开发的吗?有知道的麻烦耽误您几分钟的时间给我指教下,谢谢了!

解决方案 »

  1.   

    对于你这样的方式,是需要安装oracle的客户端和oracle的odbc的,然后通过odbc来建立到你机器到oracle服务器的连接,然后才能在你的程序里使用。至于你说到的你做java的同学告诉你可以直接连oracle的方式,其实只是java连接oracle的方式一直,这种方式称为oracle的thin jdbc,这样的连接方式是不需要客户端的,jdbc里封装了和oracle交互连接的逻辑。你通过设置一个database的url 类似jdbc:oracle:thin:@ip:port:sid就可以了java的oracle jdbc还提供了另一种连接方式oci,这种方式是和thin不一样,需要使用到oracle的oci连接,直接基于oci的本地调用,性能上优于thin,但是也是需要客户端的。
      

  2.   

    我装了Oracle的客户端的,发现只有一个ODBC管理员。我配置的时候还要设置什么TNS service name 什么的。
    搞了半天都没搞成,能给我介绍详细点吗?
      

  3.   

    装完oracle client后,程序中有一个net configration assistant,打开后看看里面的内容