精华内容
下载资源
问答
  • Vc连接Oracle数据库

    2013-10-12 13:53:32
    vc连接oracle数据库,使用Oracle提供的occi 代码中将连接类封装到了dll中
  • vc连接oracle数据库

    2016-06-20 12:40:32
    最初的代码,也是我从csdn下载的,最初的代码是c风格,我引入了三个经典的Ado类,增加了一版C++风格的连接,查询。已经在我的机器上调试通过。连接字符串是从tns配置文件里,直接拷过来的,连接字符串写... 连接oracle
  • vc 连接oracle数据库

    千次阅读 2015-09-30 16:26:42
    忙活了几天,终于用vc连接到了oracle数据库(32位),虽然只是连接到本机的。有一种豁然开朗的感觉。 刚开始的时候,各种连不上,我就把关于oracle的软件全删了。我不是正规卸载的,而是把相关文件夹都删了。还有...


    忙活了几天,终于用vc连接到了oracle数据库(32位),虽然只是连接到本机的。有一种豁然开朗的感觉。

    刚开始的时候,各种连不上,我就把关于oracle的软件全删了。我不是正规卸载的,而是把相关文件夹都删了。还有注册表项。(见本文末尾)


    重新安装了11g,要完整版,不是express的。

    pszPwd-密码   ,pszUser-用户, pszServer-数据源(我的是orcl)

    CString cstrSql = "Provider=OraOLEDB.Oracle.1; Password=";
    				cstrSql += pszPwd;
    				cstrSql += "; User ID=";
    				cstrSql += pszUser;
    				cstrSql += "; Data Source=";
    				cstrSql += pszServer;
    				cstrSql += "; Persist Security Info=True";
    				_bstr_t sql = cstrSql;
    				m_oraConn.CreateInstance(__uuidof( Connection));//创建Connection对象
    
    				m_oraConn->Open(sql,"","",adModeUnknown); ///连接数据库

    记录一下。


    完全删除oracle

    参考:http://blog.csdn.net/tanzugan/article/details/7556770


    1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。 
    2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer 卸装所有Oracle产品,但Universal Installer本身不能被删除 
    5、 运行regedit,选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按del键删除这个入口。 
    6、 运行regedit,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滚动这个列表,删除所有Oracle入口。
    7、 运行refedit,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog \Application,删除所有Oracle入口。
    8、 开始->设置->控制面板->系统->高级->环境变量 删除环境变量CLASSPATH和PATH中有关Oracle的设定 
    9、 从桌面上、STARTUP(启动)组、程序菜单中,删除所有有关Oracle的组和图标 
    10、 删除\Program Files\Oracle目录 
    11、 重新启动计算机,重起后才能完全删除Oracle所在目录 
    12、 删除与Oracle有关的文件,选择Oracle所在的缺省目录C:\Oracle,删除这个入口目录及所有子目录,并从Windows 2000目录(一般为C:\WINNT)下删除以下文件ORACLE.INI、oradim73.INI、oradim80.INI、 oraodbc.ini等等。
    13、 WIN.INI文件中若有[ORACLE]的标记段,删除该段
    14、 如有必要,删除所有Oracle相关的ODBC的DSN 
    15、 到事件查看器中,删除Oracle相关的日志

    说明: 
    如果有个别DLL文件无法删除的情况,则不用理会,重新启动,开始新的安装, 
    安装时,选择一个新的目录,则,安装完毕并重新启动后,老的目录及文件就可以删除掉了。


    展开全文
  • VC 连接oracle数据库

    千次阅读 2014-06-19 08:22:07
    1、加入头文件 2、连接数据库

    1、导入库文件,并设置全局连接字符串

    #import "C:\Program Files\Common Files\System\ado\msado60_Backcompat_i386.tlb" no_namespace rename("EOF","EndOfFile")
    
    _ConnectionPtr pConn=NULL;	//数据库连接

    2、在工程目录下新建SQL_connect.ini文件,并输入

    Provider=MSDAORA.1;Password=test;User ID=test;Data Source=127.0.0.1:1521/orcl;Persist Security Info=True
    127.0.0.1是指本机,如果连接到其他IP,直接修改该地址即可

    连接数据库

    if (!AfxOleInit())											//初始化OLE/COM库
    	{
    		AfxMessageBox(_T("OLE init Error"));
    		return FALSE;
    	}
    	//创建数据库连接实例
    	CStdioFile file; 
    	file.Open(_T("SQL_Connect.ini"), CFile::modeRead);
    	CString str=_T("");
    	file.ReadString(str);
    	file.Close();
    	const _bstr_t strSRC = (_bstr_t)str;
    	//const _bstr_t strSRC= "Provider=MSDAORA.1;Password=test;User ID=test;Data Source=localhost:1521/orcl;Persist Security Info=True";
    	if (FAILED(pConn.CreateInstance("ADODB.Connection")))
    	{
    		AfxMessageBox(_T("Create Instance failed!"));
    		exit(0);
    	}
    	try
    	{
    		pConn->Open(strSRC,"","",adModeUnknown);
    	}
    	catch(_com_error e)
    	{
    		AfxMessageBox(e.Description());
    		exit(0);
    	}
    	

    3、查询数据库

    	<pre name="code" class="cpp">        CString str="R4-012345A010";
            CString coilnum;
    	_variant_t  RecordsAffected;
    	_RecordsetPtr pRecordset;
    	//钢卷1
    	str.Format(_T("select coilnum from test.test2 where coilnum like '%s'"), str);
    	pRecordset = pConn->Execute((_bstr_t)str,&RecordsAffected,adCmdText);	//查询历史数据中当前卷信息
    	if (!(pRecordset->BOF||pRecordset->EndOfFile) )	//存在历史数据
    	{
    		_variant_t var;
    		var = pRecordset->GetFields()->GetItem((long)0)->GetValue();
    		if(var.vt != VT_NULL)   //为NULL
    		{m_coilnum = var;}
    		else
    		{m_coilnum = "";}
    		
    	}

    
    




    展开全文
  • VC连接oracle数据库

    2012-05-07 14:38:23
    写了一个程序连接数据库连接内网的一个服务器上的oracle 用sqlplus 都可以登录上去 但是用我的程序只能在我电脑上执行 不能在另一台电脑上执行。 好像是连接的时候错误。 但是在sqlplus里面是可以登录的, ...
  • VC连接Oracle数据库之ODBC及ADO

    千次阅读 2011-08-22 21:31:33
    一.ODBC连ORACLE:  str.Format( "Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd; ") 二.ADO连接ORACLE
    一.ODBC连ORACLE: 
    

    str.Format( "Driver={Microsoft  ODBC  for  Oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd; ")
    二.ADO连接ORACLE:

    1.客户端一定要安装 Oracle的oledb的驱动。可到以下网址下载(10.版本的大概190M)

    http://otn.oracle.com/software/tech/windows/ole_db/content.html

    2.要使用Net Configuration Assistant配置好侦听及相关环境

    代码

    首先,在 stdafx.h 中加入以下代码,导入ado库

    #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF")

    其次,要确保有 ::CoInitialize(NULL)的调用,以初始化COM.

    //类定义

    class CDBOp  
    {
    public:
        bool ReConnect();
        bool CloseConnect();
        bool OpenConnect(int dbType,  CString hostName,
                         CString dBName, CString userName, CString password);
        bool GetItemData(CString itemID, float &price, CString &descript); 
        //以上取存储过程数据,这里只是举例说明
        CString GetErrorMsg();
        CDBOp();
        virtual ~CDBOp();
     
    private:
        _ConnectionPtr m_pConnection;  //连接对象
        _RecordsetPtr m_pRecordset;     //记录集对象
        bool   m_bConnectSuccess;     //连接是否成功
        CString   m_strConnString;      //数据库连接字符串 
        CString   m_strErrMsg;           //保存错误信息
    };

    //类实现

    CDBOp::CDBOp():m_bConnectSuccess(false)
    {
        ::CoInitialize(NULL);
        m_pConnection.CreateInstance("ADODB.Connection");
        m_pConnection->ConnectionTimeout=30; 
        m_pRecordset.CreateInstance("ADODB.Recordset");
    }
    CDBOp::~CDBOp()
    {
        //::CoUninitialize();
        CloseConnect();
    }
    //打开连接(数据库类型,主机名,数据库名,登陆名,密码)
    //数据库类型: 0 为Sql server, 1为 Oracle
    bool CDBOp::OpenConnect(int dBType,  
            CString hostName, 
            CString dBName, 
            CString userName, 
            CString password)        
    {
        CString strConn;
     
        if (dBType =0)  //Sql server
        {
           strConn = "Provider=SQLOLEDB.1";
           strConn+= ";User ID=";
           strConn+= userName;
           strConn+= ";Password=";
           strConn+= password;
           strConn+= ";Initial Catalog=";
           strConn+= dBName;
           strConn+= ";Data Source=";
           strConn+= hostName;
        }
        else if (dBType =1) //Oracle
        {
          //MSDAORA or OraOLEDB.Oracle.1
          strConn = "Provider=OraOLEDB.Oracle.1";
          strConn+= ";Persist Security Info=true";
          strConn+= ";User ID=";
          strConn+= userName;
          strConn+= ";Password=";
          strConn+= password;
          strConn+= ";Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)";
          strConn+= "(HOST=";
          strConn+= hostName;
          strConn+= ")(PORT=1521))(CONNECT_DATA=";
          strConn+= "(SERVICE_NAME=";
          strConn+= dBName;
          strConn+= ")))";
        }
        if (strConn.IsEmpty()) 
        {
          m_strErrMsg="The connect string is null.";
          return false;
        }
        CloseConnect();
        m_strConnString =strConn; 
       
        return ReConnect();
    }
    //再次连接
    bool CDBOp::ReConnect()
    {
        m_strErrMsg=_T("");
        m_bConnectSuccess= false;
        HRESULT hr;
        try
        {
           hr = m_pConnection->Open(_bstr_t(m_strConnString), "", "", adModeUnknown);
           if (SUCCEEDED(hr))
           m_bConnectSuccess=true;  
        }
        catch(_com_error e)
        {  
           m_strErrMsg.Format("Connect database failure!\r\n\r\n message error:%s\r\n\r\n
                               The connect string:%s",e.ErrorMessage(),m_strConnString); 
        }
        return m_bConnectSuccess;
    }
    //关闭链接
    bool CDBOp::CloseConnect()
    {
       if (m_bConnectSuccess)
       {
          if (m_pConnection->State==1) 
             m_pConnection->Close(); 
          m_bConnectSuccess =false;
       }
       return true;
    }
    //取得错误信息
    CString CDBOp::GetErrorMsg()
    {
       return m_strErrMsg;
    }
     
    bool CDBOp::GetItemData(CString itemID, float &price, CString &descript)
    {
        _CommandPtr   pCommand = NULL;
        pCommand.CreateInstance("ADODB.Command");
        #ifdef   _DEBUG   
        if   (pCommand   ==   NULL)   
        {   
          AfxMessageBox("Command Created fail! Please confirm whether initialize COM.");   
        }   
        #endif   
        ASSERT(pCommand   !=   NULL);  
        try   
        {   
            if (m_bConnectSuccess==false)
           {
               if (ReConnect()==false) 
               return false;
            }
         //输入参数   itemID    
         _ParameterPtr   pParamItemID;   
         pParamItemID.CreateInstance("ADODB.Parameter");   
         pParamItemID->Name="ItemID";   //所用存储过程参数名称   
         pParamItemID->Type=adChar;    //参数类型   
         pParamItemID->Size=10;     //参数大小   
         pParamItemID->Direction=adParamInput;  //表明是输入参数   
         pParamItemID->Value=_variant_t(itemID);   
         pCommand->Parameters->Append(pParamItemID);    
      
      
         //输出参数   price    
         _ParameterPtr   pParamPrice;       
         pParamPrice.CreateInstance("ADODB.Parameter");   
         pParamPrice->Name="Price";    //参数名称   
         pParamPrice->Type=adNumeric;    //参数类型   
         pParamPrice->Size=9;      //参数大小
         pParamPrice->Precision =9;
         pParamPrice->NumericScale =2;  
         pParamPrice->Direction=adParamOutput;  //声明是输出参数   
         pCommand->Parameters->Append(pParamPrice);  
     
         //输出参数   Descript    
         _ParameterPtr   pParamDescript;       
         pParamDescript.CreateInstance("ADODB.Parameter");   
         pParamDescript->Name="Descript";   //参数名称   
         pParamDescript->Type=adVarChar;    //参数类型   
         pParamDescript->Size=160;     //参数大小
         pParamDescript->Direction=adParamOutput; //声明是输出参数   
         pCommand->Parameters->Append(pParamDescript);  
         //执行存储过程   
         pCommand->ActiveConnection=m_pConnection;   
         pCommand->CommandText="spItemInfo";   //存储过程名称   
         pCommand->CommandType=adCmdStoredProc;  //表示为存储过程adCmdStoredProc   
         pCommand->Execute(NULL,   NULL,   adCmdStoredProc);   
      
       
         price=(float)(pParamPrice->Value);
         descript = (char*)_bstr_t(pParamDescript->Value);  
         return true;
        }
        catch(_com_error   e)   
        {         
          m_strErrMsg.Format(_T("Error:GetItemData. Reason:%s\n file: %s; line:
                             %d\n"), e.ErrorMessage(), __FILE__, __LINE__);       
       return false;
        }   
    }
    展开全文
  • vc连接oracle数据库vc连接到ora从vc连接oracle数据库cle数据库
  • 使用ado连接oracle数据库 m_pConnection->Open( "Provider=MSDAORA.1;Password=oracle;User ID=sys;Data Source=CGPOS;Persist Security Info=TRUE", "","",NULL); 这里过不去 我临时建立一个工程使用...
  • VC远程连接Oracle数据库方法
  • VC使用ADO连接Oracle数据库

    热门讨论 2012-05-20 21:32:59
    VC使用ADO连接Oracle数据库 内涵详细使用说明,可以按照说明配置学习使用
  • VC ADO连接Oracle数据库

    万次阅读 2010-07-11 15:33:00
    VC ADO连接Oracle数据库 测试数据库为Oracle10g <br /> <br />数据源方式连接。 1、应用程序的stdafx.h头文件中(也可以在其他合适的地方)包含如下语句。 #import"C://program ...

    VC ADO连接Oracle数据库

    测试数据库为Oracle10g

    数据源方式连接。

    1、应用程序的stdafx.h头文件中(也可以在其他合适的地方)包含如下语句。

    #import "C://program files//common files//system//ado//msado15.dll" no_namespace rename ("EOF", "adoEOF")

     

    2、连接数据库

    CoInitialize(NULL);                                          //初始化Com组件

         //conPtr.CreateInstance("ADODB.Connection");            //Connection用于与数据库服务器的链接

         conPtr.CreateInstance(__uuidof(Connection));            //Connection用于与数据库服务器的链接另一种方式

         /******************连接数据库********************/

         try

         {

             conPtr->ConnectionTimeout = 5;                          //设置连接时间

             conPtr->Open(_T("DSN=OracleDbTest;"), _T("system"),_T("sa"), adModeUnknown);//systemsa分别为用户名和密码

         }

         catch(_com_error e)                                              //捕捉异常

         {

             AfxMessageBox(e.ErrorMessage());

         }

         CoUninitialize();                                       //释放com组件

        

    3、访问数据库

    _RecordsetPtr recordPtr;//数据集指针

    recordPtr.CreateInstance(__uuidof(Recordset));

    CString cmdStr=_T("select name,stuno from student");//student为表名 该表中有两个字段name(字符型)stunoint型)

         try

         {

                  recordPtr->Open(_variant_t(cmdStr),

                  conPtr.GetInterfacePtr(),

                  adOpenDynamic,

                  adLockOptimistic,

                  adCmdText);

         }

         catch (_com_error  e)

         {

             AfxMessageBox(e.Description());

         }

         while (!(recordPtr->adoEOF))

         {//获取记录

             CString name=(CString)recordPtr->GetCollect(_variant_t("name")).bstrVal;

             int no=recordPtr->GetCollect(_variant_t("stuno")).intVal;

    recordPtr->MoveNext();

         }

         recordPtr->Close();//关闭记录集

         recordPtr.Release();//释放空间

         conPtr->Close();//关闭连接

         conPtr.Release();//释放空间

     

    非数据源方式连接。

    应用程序的stdafx.h头文件中(也可以在其他合适的地方)包含如下语句。

    #import "C://program files//common files//system//ado//msado15.dll" no_namespace rename ("EOF", "adoEOF")

     

     

    连接数据库

    CoInitialize(NULL);                                          //初始化Com组件不知是否有必要

         //conPtr.CreateInstance("ADODB.Connection");            //Connection用于与数据库服务器的链接

         conPtr.CreateInstance(__uuidof(Connection));            //Connection用于与数据库服务器的链接另一种方式

         CString conStr;       

         /*conStr.Format(_T("Provider=MSDAORA.1;User ID=%s;Password=%s;/

         Data Source=%s;Persist Security Info=false"),userName,pwd,dbAddr);*///此连接方式可以连接数据库但是读写数据时有些问题

    //sa为密码 system为用户名 orcl为数据库名

         conStr.Format(_T("Provider=OraOLEDB.Oracle.1; /

                                Data Source=%s;Persist Security Info=True"), _T("orcl"));//orcl表示数据库

     

         /******************连接数据库********************/

         try

         {

             conPtr->ConnectionTimeout = 5;                          //设置连接时间

             conPtr->Open(_bstr_t(conStr), _T("system "),_T("sa "),option);///连接oracle数据库systemsa分别表示用户名和密码

         }

         catch(_com_error e)                                              //捕捉异常

         {

             AfxMessageBox(e.ErrorMessage());

         }

         CoUninitialize();                                       //释放com组件

        

    获取记录集

    获取记录集的方式与数据源方式访问数据库相同相同

     

     

     

     

     

    展开全文
  • VC_中连接Oracle数据库的几种方法
  • //连接对像_RecordsetPtrpRect;//记录集对象_CommandPtrpCmd;//命令对象pRect.CreateInstance(__uuidof(Recordset));pConn.CreateInstance(__uuidof(Connection));//L连接对像pCmd.CreateInstance(__uuidof(C...
  • 请教一下高手:小弟最近在用vc8(vc2005)+occi连接oracle(11.2)数据库时客户端的配置存在问题,老是连接不上。我的配置步骤是这样的,首先下载instant client ,然后下载sdk,解压instant client 到目录C:\instant...
  • VC ODBC 连接远程 ORACLE数据库
  • vc中用C语言实现连接oracle数据库(用ado的方法)
  • vc++中用ado连接oracle数据库的完整步骤[@more@]1、首先要引入一个动态连接库:#include #import "c:program filescommon filessystemadomsado15.dll" no_namespace rename("EOF","adoeof")2、在应用程序主类的...
  • 另有笔记本B未安装oracle数据库也未安装客户端,想通过odbc远程访问到A的数据库,实现B机子能通过VC对数据库进行操作。在B机上我已经在oracle官网上下载了instantclient-odbc-nt-11.2.0.3.0,instantclient-basic...
  • } ////----关闭数据库连接 BOOL CMyAdoDB::CloseConnection() { //以下是连接access2000数据库。。。 try { if(m_pConnection->State) return m_pConnection->Close(); } catch(_com_error e)///捕捉异常 { CString...
  • VC上写了个测试程序 连接代码如下 AfxOleInit(); m_pConnection.CreateInstance(__uuidof(Connection)); try //建立数据库连接 { m_pConnection.CreateInstance(__uuidof(Connection)); m_pConnection-&...
  • Options”,转到“Directories”页,在"Show Directories for"中 1) 选“Executable Files”,在列表中加入proc.exe的目录(ORACLE_HOME\bin),如:D:\Oracle\product\10.1.0\Client_1\BIN 2) 选“Include ...
  • 服务器是win2003的oracle10,开发环境是在32位win7上的vc6。 现在程序在服务器上可以正常连接,但程序在win7上或另一台win2003都报"Unknown erro 0x800A0E7A" 这个错误。(win7和那台win2003都装了oracle10的客户端...
  • OpenEx(m_strDsn, CDatabase::noOdbcDialog)采用这种方式打开数据库连接。 之前2种都是可以的,现在不知道为什么,只有第二种驱动连接才可以。请问是什么原因导致第一种驱动连接失败呢?要怎么做才可以呢?
  • 程序要经常访问数据库读取数据,运行一会儿后就出现ODBC连接窗口,直接点击确定后接着运行,过一会儿还会出现。 代码里设置了ODBC的数据源名称和用户名、密码,所以应该不是ODBC设置的问题。 网上有说是 ...
  • python连接oracle数据库

    2016-09-05 16:33:00
    python连接oracle通过cx-oracle包 安装cx_oracle:pip install cx_oracle 在执行这步时遇到个坑,找不到vc编译器 其实很简单,访问这个网址 http://www.microsoft.com/en-us/download/details.aspx?id=44266,...
  • 1)查了一些资料,是不是使用数据源的链接方式是: m_dbstr.Format(_T("Provider=OraOLEDB.Oracle;Data Source=%s;User ID=%s;...如果连接Oracle,此处是什么值???我试了好多,不管用 谢谢了
  •  ADO对象包括:连接对象(Connection Object)、命令对象 (Command Object) 、记录集对象(RecordSet Object)、字段对象(Field Object) 、记录对象(Record Object) 、错误对象(ErrorObject)、参数对象(Parameter ...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 178
精华内容 71
关键字:

vc连接oracle数据库