VC++调用oracle.doc_第1页
VC++调用oracle.doc_第2页
VC++调用oracle.doc_第3页
VC++调用oracle.doc_第4页
VC++调用oracle.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/ callOmronproduce.cpp : Defines the entry point for the console application./ VC+控制存储过程#include stdafx.h#include #include #include #include #import c:Program FilesCommon FilesSystemADOmsado15.dll no_namespace rename(EOF, EndOfFile)using namespace std;/获得系统日期long getSystemDate()time_t timer;time(&timer);tm* t_tm = localtime(&timer);int sysyear= t_tm-tm_year+1900;int sysmonth = t_tm-tm_mon+1;int sysday= t_tm-tm_mday;int sysminiute =t_tm-tm_min;int syssecond=t_tm-tm_sec;long date;date = sysyear*10000+sysmonth*100+sysday;return date;/调用omron_edw存储过程string Call_Omron_edw_Produce(long sysdate)/初始化COM库(调用msado15.dll为COM库调用方式):CoInitialize(NULL);string temp;try/初始化ADO三个基本接口;_CommandPtrm_pCmd;_RecordsetPtrm_pRecordset;_ConnectionPtr m_pConnection;/ 设置连接字符串,为是BSTR型或者_bstr_t类型_bstr_t strConnect,bstrSQL;/连接字符串说明:Provider表示驱动引擎;Data Source表示数据库文件名及其完整路径;strConnect= Provider=OraOLEDB.ORACLE.1;Persist Security Info=TRUE;Data Source=10.110.50.103/RELEASE;User ID=OMRON_EDW;Password=OMRON_EDW;/strConnect= Provider=MSDAORA;Persist Security Info=TRUE;Data Source=10.110.50.103/RELEASE;User ID=OMRON_EDW;Password=OMRON_EDW;/ 创建Connection对象/ 利用_ConnectionPtr这个智能指针构造对象pConn,调用其中的Connection定义m_pConnection.CreateInstance(_uuidof(Connection);/ 创建记录集对象m_pRecordset.CreateInstance(_uuidof(Recordset);/ 创建CommandPtr对象m_pCmd.CreateInstance(_uuidof(Command);m_pConnection-CursorLocation = adUseClient;m_pConnection-Mode = adModeReadWrite;m_pConnection-ConnectionTimeout = 3;m_pConnection-CommandTimeout = 3;m_pConnection-ConnectionString = strConnect;/打开数据库连接/连接字符串说明:Provider表示驱动引擎;User ID表示用户名;Password表示口令;Initial Catalog表示数据库名m_pConnection-Open(strConnect,OMRON_EDW,OMRON_EDW,adModeUnknown);if(m_pConnection=NULL)cerrLind data ERROR!n;elsecout EDW数据库连接成功endl;cout EDW数据跑批正在进行.CreateParameter(_bstr_t(p_etldate),adVarChar,adParamInput,60);lPara0-PutValue(_variant_t(sysdate);m_pCmd-Parameters-Append(lPara0);_ParameterPtr lPara1= m_pCmd-CreateParameter(_bstr_t(O_RUNSTATUS),adVarChar,adParamOutput,60);lPara1-Value=_bstr_t( );m_pCmd-Parameters-Append(lPara1);m_pCmd-CommandText=_bstr_t(BATCH_EDW_CTL_DAILY);/需要使用的ADO连接m_pCmd-CommandType=adCmdStoredProc;m_pCmd-ActiveConnection = m_pConnection;m_pRecordset = m_pCmd-Execute(NULL,NULL,adCmdStoredProc);/返回存储过程的返回值_bstr_tv_return,v_text;v_return = m_pCmd-Parameters-GetItem(O_RUNSTATUS)-GetValue();temp = (string)(_bstr_t)v_return;/释放COM库:CoUninitialize();return temp;/ 捕捉异常catch(_com_error e)/ 显示错误信息cerr nERROR: CursorLocation = adUseClient;m_pConnection-Mode = adModeReadWrite;m_pConnection-ConnectionTimeout = 3;m_pConnection-CommandTimeout = 3;m_pConnection-ConnectionString = strConnect;/打开数据库连接m_pConnection-Open(strConnect,OMRON_MART,OMRON_MART,adModeUnknown);if(m_pConnection=NULL)cerrLind data ERROR!n;elsecout EDW数据跑批完成endl;cout MART数据库连接成功endl;cout MART数据跑批正在进行.CreateParameter(_bstr_t(p_etldate),adVarChar,adParamInput,60);lPara0-PutValue(_variant_t(sysdate);m_pCmd-Parameters-Append(lPara0);_ParameterPtr lPara1= m_pCmd-CreateParameter(_bstr_t(O_RUNSTATUS),adVarChar,adParamOutput,60);/lPara1-Value=_bstr_t( );m_pCmd-Parameters-Append(lPara1);/ MART跑批m_pCmd-CommandText=_bstr_t(BATCH_MART_CTL_DAILY);/需要使用的ADO连接m_pCmd-CommandType=adCmdStoredProc;m_pCmd-ActiveConnection = m_pConnection;m_pRecordset = m_pCmd-Execute(NULL,NULL,adCmdStoredProc);cout MART数据跑批完成endl;cout -endl;cout 全部数据跑批完成Parameters-GetItem(O_RUNSTATUS)-GetValue();temp = (string)(_bstr_t)v_return;:CoUninitialize();return temp;/m_pCmd.Detach();/ 捕捉异常catch(_com_error e)/ 显示错误信息cerr nERROR: tm_hour;int sysminiute =t_tm-tm_min;int syssecond=t_tm-tm_sec;long sysdate = getSystemDate();char sysdatechar13;memset(sysdatechar,0,13);ltoa(sysdate,sysdatechar,10);sysdatechar8=.;sysdatechar9=l;sysdatechar10=o;sysdatechar11=g;sysdatechar12=0;ofstream ofs(sysdatechar,ios:app);if(sysminiute10)ofssysdatesyshour:0sysminiute:syssecondlognameendl;ofsendl;else if(syssecond10)ofssysdatesyshour:sysminiute:0syssecondlognameendl;ofsendl;elseofssysdatesyshour:sysminiute:syssecondlognameendl;ofsendl;ofs.close();int main(int argc, char* argv)string edw;string mart;string zero = 0;long sysdate = getSystemDate();/edwLogdetail(EDW数据跑批开始);edw = Call_Omron_edw_Produce(sysdate);/coutedwddddendl;if(edw = zero)Logdetail(EDW数据跑批完成);elseLogdet

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论