视窗
loading...
您现在的位置:首页 > IT认证 > 软件水平 >

软考程序员辅导:vc中用ado连接oracle的方法


2012年软考程序员辅导:vc中用ado连接oracle的方法

在利用ado连接数据库之前,需要做一些准备

  1.用#import指令引入ADO类型库

  我们在stdafx.h中加入如下语句:

  #import “c:program filescommon filessystemadomsado15.dll” no_namespace rename(“EOF”,“adoEOF”) .

  这一语句有何作用呢?其最终作用同我们熟悉的#i nclude类似,编译的时候系统会为我们生成msado15.tlh,ado15.tli两个C++头文件来定义ADO库。

  几点说明:

  (1) 您的环境中msado15.dll不一定在这个目录下,请按实际情况修改

  (2) 在编译的时候肯能会出现如下警告,对此微软在MSDN中作了说明,并建议我们不要理会这个警告。msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still unsigned

  2、初始化OLE/COM库环境

  必须注意的是,ADO库是一组COM动态库,这意味应用程序在调用ADO前,必须初始化OLE/COM库环境。在MFC应用程序里,一个比较好的方法是在应用程序主类的InitInstance成员函数里初始化OLE/COM库环境。

  BOOL CMyAdoTestApp::InitInstance()

  {

  if(!AfxOleInit())//这就是初始化COM库

  {

  AfxMessageBox(“OLE初始化出错!”);

  return FALSE;

  }

  }  3.ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。与数据库的连接就是用_ConnectionPtr接口,它的连接字符串可以是自己直接写,也可以指向一个ODBC DSN.以下的例子都测试通过,顺便写了SQL Server的例子。

  BOOL CTestconDlg::ConnectDatabase()

  {

  CString m_server,m_data,m_uid,m_pwd;

  m_server=“192.168.0.24”;//服务器ip或名称

  m_data=“crmdb”;//ODBC数据源

  m_uid=“njcrm”;//用户名

  m_pwd=“crmdbo”;//密码

  BOOL retFt=false;

  HRESULT hr;

  try

  {

  hr = m_pConnection.CreateInstance(“ADODB.Connection”);///创建Connection对象

  if(SUCCEEDED(hr))

  {

  _bstr_t connStr;

  m_pConnection->CursorLocation=adUseClient;

  //begin---------------Oracle ODBC 配置数据源  //控制面板->管理工具->数据源(ODBC)->系统DNS->添加->Microsoft ODBC for Oracle->完成->配置……

  // connStr=“DSN=”+m_data;

  // m_pConnection->Open(_bstr_t(connStr),(_bstr_t)m_uid,(_bstr_t)m_pwd,adConnectUnspecified);

  //end---------------Oracle ODBC 配置数据源

  //begin---------------Oracle 标准安全级别

  // connStr=“Provider=OraOLEDB.Oracle;User ID=njcrm;Password=crmdbo;Data Source=192.168.0.24;”;

  // m_pConnection->Open(_bstr_t(connStr),(_bstr_t)_T(“”),(_bstr_t)_T(“”),adConnectUnspecified);

  //end---------------Oracle 标准安全级别

  //begin---------------Oracle 微软格式

  // connStr=“Provider=MSDAORA.1;User ID=njcrm;Password=crmdbo;Data Source=192.168.0.24;Persist Security

  Info=False”;

  // m_pConnection->Open(_bstr_t(connStr),(_bstr_t)_T(“”),(_bstr_t)_T(“”),adConnectUnspecified);

  //end---------------Oracle 微软格式

  //begin---------------Oracle 微软格式 变量

  connStr=“Provider=OraOLEDB.Oracle;Persist Security Info=False;Data Source=”+m_server; m_pConnection->Open(_bstr_t(connStr),(_bstr_t)m_uid,(_bstr_t)m_pwd,adConnectUnspecified);  //end---------------Oracle 微软格式 变量

  //begin---------------Oracle 信任连接1

  // connStr=“Provider=MSDAORA.1;User ID=/;Password=;Data Source=192.168.0.24;Persist Security

  Info=False”;

  // m_pConnection->Open(_bstr_t(connStr),(_bstr_t)_T(“”),(_bstr_t)_T(“”),adConnectUnspecified);

  //end---------------Oracle 信任连接1

  //begin---------------Oracle 信任连接2

  // connStr=“Provider=MSDAORA.1;OSAuthent=1;Data Source=192.168.0.24;Persist Security Info=False”;

  // m_pConnection->Open(_bstr_t(connStr),(_bstr_t)m_uid,(_bstr_t)m_pwd,adConnectUnspecified);

  //end---------------Oracle 信任连接2

  //begin---------------SQLServer ODBC配置数据源

  // connStr=“DSN=new_kh_wh”;

  // m_pConnection->Open(_bstr_t(connStr),(_bstr_t)_T(“sa”),(_bstr_t)_T(“”),adConnectUnspecified);

  //end---------------SQLServer ODBC配置数据源

  //begin---------------SQLServer

  // connStr=“driver={SQL Server};Server=192.168.0.24;DATABASE=new_kh_bb;Uid=sa;Pwd=;”;

  // m_pConnection->Open(_bstr_t(connStr),(_bstr_t)_T(“”),(_bstr_t)_T(“”),adConnectUnspecified);

  //end---------------SQLServer

  retFt= true;

  }

  }

  catch(_com_error e)///捕捉异常

  {

  CString errormessage;

  errormessage.Format(“连接数据库失败!\r\n错误信息:%s”,e.ErrorMessage());

  AfxMessageBox(errormessage);///显示错误信息

  retFt= false;

  }

  return retFt;

  }

闂侀潧妫岄崑锟�

闂侀潧妫岄崑锟�

闂侀潧妫欓崝鏇㈠储閵堝洦瀚婚柨婵嗘嫅缁憋綁鏌¢崟顐︻€楅柟铚傚嵆閹囧醇閻斿摜绉柣鐘叉搐閻°劌危閹达箑违闁跨噦鎷�
闂佸搫鐗滈崜娑㈡偟椤栫偞鐒鹃柕濞垮劚閻庤菐閸ワ絽澧插ù鐓庢嚇瀵爼濡烽敂鍓у煃婵炲瓨绮岀花鑲╄姳娴煎瓨鍤傞柡鍐ㄥ€荤粔褰掓煥濞戣櫕瀚�闁诲海鏁搁、濠偯归崱妯诲闁伙絽鏈悾鍗炃庨崶锝呭⒉濞寸厧鎳橀獮瀣箣濠婂嫮鎷ㄩ梺鍛婃⒐缁嬫帡鎯囨导鏉戝唨闁搞儯鍔嶉~鏍庨崶锝呭⒉濞寸厧鎳橀幆鍐礋椤愩垺鐦旀繝銏f硾鐎氬摜妲愰敓锟�闂佺懓鐡ㄩ崹鍐测堪閹寸姳鐒婂┑鐘叉搐濞呫垹霉閿濆棛鐭庨柍褜鍓欓幊鎰枔閹达附鍋嬮柛顐ゅ枑缂嶁偓闂佹垝鐒﹂妵鐐电礊閺冨牆绾ч柛鎰硶缁€锟�闁诲簼绲婚~澶愬垂濠婂嫮顩锋い鎺戝暞缁侇噣寮堕悙鍨珪婵炲牊鍨剁粚閬嶅焺閸愌呯婵犵鈧啿鈧懓锕㈡担鍓插殨闁稿本绻嶉崬鎾煙鐎涙ḿ澧繝鈧担鍦懝闁割煈鍋呯紞鈧梺鐟扮摠閻楃偟鎹㈠顑芥灃闁哄洦鐭换鍡涙煙椤撗冪仴妞ゆ洦鍓熷畷锝嗙節閸愨晩妲梺鑹伴哺濮婂鏌堥幘顔肩闁瑰瓨绮嶇划锕傛煥濞戞ɑ婀版繝鈧幍顔惧崥婵炲棗娴风粣妤冪磼閺傛鍎忕€规挸妫濆畷姘舵偐缂佹ḿ褰戦梺鎸庡喕閹凤拷闁诲海鏁搁幊鎾舵暜椤愶箑绀嗘繛鎴灻弫鍫曟倵绾拋娼愰柛銊︾矋缁傛帡顢楁担绋啃梺瑙勬緲缁绘垿寮鐣岊浄婵せ鍋撻柍褜鍓欓崐鍝ョ礊鐎n喗鍎嶉柛鏇ㄥ帎瑜版帗鐓€妞ゆ帒锕︾粈锟�闂佽壈椴稿濠氭焾閹绢喖妫橀柣鐔稿绾偓闂佹寧绋掑畝鎼佸磻閺嶃劎顩烽柨鐕傛嫹:webmaster@jscj.com闂侀潧妫岄崑鎾绘煟椤厾绁烽柣锔跨矙閺佸秹鏁撻敓锟�4008816886

相关文章

无相关信息
更新时间2022-03-13 11:10:58【至顶部↑】
联系我们 | 邮件: webmaster@jscj.com | 客服热线电话:4008816886(QQ同号) |  濠电儑缍€椤曆勬叏閻愮鍋撻獮鍨仾婵犫偓閸パ屽殫妞ゆ棁顔婄换锟�

付款方式留言簿投诉中心网站纠错二维码手机版

客服电话: