视窗
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;

  }

闂備線娼уΛ宀勫磻閿燂拷

闂備線娼уΛ宀勫磻閿燂拷

闂備線娼уΛ娆撳礉閺囥垹鍌ㄩ柕鍫濇处鐎氬鏌ㄥ┑鍡樺珔缂佹唻缍侀弻锟犲礋椤愶富鈧鏌熼摎鍌氬祮闁诡啫鍥ч唶闁绘柨鎽滅粔顒勬煟閻樺弶鎼愰柣掳鍔屽嵄闁硅揪绠戣繚闂佽法鍣﹂幏锟�
闂備礁鎼悧婊堝礈濞戙垺鍋熸い鏍仦閻掗箖鏌曟繛鍨姎闁诲氦顕ц彁闁搞儻绲芥晶鎻捗归悡搴㈠殗鐎殿喖鐖兼俊鐑芥晜閸撗冪厓濠电偛鐡ㄧ划宀€鑺遍懖鈺勫С濞寸厧鐡ㄩ崵鍌炴煛閸愩劌鈧崵绮旇ぐ鎺撶叆婵炴垼娅曠€氾拷闂佽娴烽弫鎼併€佹繝鍋綊宕卞Ο璇差潯闂佷紮绲介張顒勬偩閸楃們搴ㄥ炊閿濆懎鈷夋繛瀵稿帶閹虫﹢鐛€n喖绠f繝濠傚閹枫劑姊洪崨濠冣拹缂佸甯¢幆鍥ㄥ閺夋垵鍞ㄩ梺鎼炲劘閸斿秹锝為弽顬ュ酣宕堕敐鍛拤婵炲鍘ч幊姗€骞嗛崘顔肩妞ゆ劑鍨洪惁鏃€绻濋姀锝嗙【閻庢艾鎽滃Σ鎰版晸閿燂拷闂備胶鎳撻悺銊╁垂閸愭祴鍫柟瀵稿С閻掑﹤鈹戦悩鍙夋悙婵炲懌鍨归湁闁挎繂妫涢惌搴ㄦ煃瑜滈崜娆撳箠閹邦兘鏋旈柟杈鹃檮閸嬪鏌涢銈呮瀾缂傚秮鍋撻梻浣瑰灊閻掞箓濡甸悙鐢电闁哄啫鐗嗙痪褔鏌涢幇顖涚《缂佲偓閿燂拷闂佽绨肩徊濠氾綖婢舵劕鍨傛繝濠傚椤╅攱銇勯幒鎴濇殲缂佷緡鍣e鍫曟倷閸偅鐝┑鐐茬墛閸ㄥ墎绮氶柆宥呯労闁告剬鍛槬濠电姷顣介埀顒€鍟块埀顒傛嚀閿曘垺鎷呴崜鎻掓闂佺ǹ鏈换宥夊船閹绢喗鐓欓悗娑欋缚婢ь剚绻濋埀顒佹媴閸︻厾鎳濋梺鍓茬厛閸嬪懐绱為埀顒勬⒑閻熸壆鎽犻柣妤冨仧閹广垹顫濋鑺ョ亙闂佸搫娲﹂惌顔炬崲閸℃稒鐓欐い鎾楀啰浠村銈嗘处閸撶喎鐣烽敐鍡欑瘈闁告劏鏅╁Σ顖炴⒑閼逛即鍝烘慨濠傤煼閺屽牓骞橀鑲╊吅闂佺懓鐡ㄧ划宥囧垝閿曞倹鐓ユ繛鎴炆戝﹢鐗堢節閳ь剟骞嶉鎯у触濠电偛妫楀ù椋庣玻濡ゅ啰纾奸柡鍌涱儥閸庡繒鈧鎸稿Λ婵嗙暦濮樿埖鍋愮紓浣贯缚瑜版垿姊洪幐搴″枙闁瑰嚖鎷�闂佽娴烽弫鎼佸箠閹捐埖鏆滄い鎰剁畱缁€鍡樼箾閹寸伝顏堝极閸洘鍊电痪顓炴媼濞兼劙鏌涢妸锔剧煁缂佸倹甯¢、妤佹媴缁嬪晝顐︽⒑鐟欏嫭绶茬紒缁樺灴瀵偊顢欓悾宀婃祫濠殿喗銇涢崑鎾绘煃瑜滈崜娆撳磹閸濄儳绀婇悗锝庡枟閸庡秹鏌涢弴銊ュ笌鐟滅増甯楅悡鈧銈嗗笒閿曪妇绮堥敓锟�闂備浇澹堟ご绋款潖婵犳碍鐒鹃柟缁㈠枛濡﹢鏌i悢绋款棆缁绢厸鍋撻梻浣瑰缁嬫帒鐣濋幖浣哥;闁哄秲鍔庨々鐑芥煥閻曞倹瀚�:webmaster@jscj.com闂備線娼уΛ宀勫磻閹剧粯鐓熸い顐幘缁佺兘鏌i敂璺ㄧ煓闁轰礁绉归弫鎾绘晸閿燂拷4008816886

相关文章

无相关信息
更新时间2022-03-13 11:10:58【至顶部↑】
联系我们 | 邮件: webmaster@jscj.com | 客服热线电话:4008816886(QQ同号) |  婵犵數鍎戠紞鈧い鏇嗗嫭鍙忛柣鎰暯閸嬫捇鐛崹顔句痪濠电姭鍋撻柛銉戝苯娈銈嗘椤斿﹦鎹㈤敓锟�

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

客服电话: