收藏 分销(赏)

VC++调用oracle.doc

上传人:pc****0 文档编号:8986119 上传时间:2025-03-10 格式:DOC 页数:6 大小:45.50KB
下载 相关 举报
VC++调用oracle.doc_第1页
第1页 / 共6页
VC++调用oracle.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述
// callOmronproduce.cpp : Defines the entry point for the console application. // VC++控制存储过程 #include "stdafx.h" #include <iostream> #include <string> #include <time.h> #include <fstream> #import "c:\Program Files\Common Files\System\ADO\msado15.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三个基本接口;    _CommandPtr    m_pCmd;    _RecordsetPtr  m_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)     cerr<<"Lind data ERROR!\n";    else    {     cout <<"EDW数据库连接成功"<<endl;          cout <<"EDW数据跑批正在进行..."<<endl;    }           _ParameterPtr lPara0= m_pCmd->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_t  v_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:" << (char*)e.Description();//抛出异常    ::CoUninitialize();    return temp;   } } //////////////////////////////////////////////////////////////////////////////////////////////// //调用omron_mart存储过程 string Call_Omron_mart_Produce(long sysdate) {  ::CoInitialize(NULL);  string temp;  try  {    //初始化ADO三个基本接口;    _CommandPtr    m_pCmd;    _RecordsetPtr  m_pRecordset;    _ConnectionPtr m_pConnection;    // 设置连接字符串,为是BSTR型或者_bstr_t类型    _bstr_t strConnect,bstrSQL;       strConnect= "Provider=OraOLEDB.ORACLE.1;Persist Security Info=TRUE;Data Source=10.110.50.103/RELEASE;User ID=OMRON_MART;Password=OMRON_MART;";    //strConnect= "Provider=MSDAORA.1;Persist Security Info=TRUE;Data Source=10.110.50.103/RELEASE;User ID=OMRON_MART;Password=OMRON_MART;";    // 创建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;      //打开数据库连接      m_pConnection->Open(strConnect,"OMRON_MART","OMRON_MART",adModeUnknown);      if(m_pConnection==NULL)    {          cerr<<"Lind data ERROR!\n";    }    else    {        cout <<"EDW数据跑批完成"<<endl;    cout <<"MART数据库连接成功"<<endl;   cout <<"MART数据跑批正在进行..."<<endl;    }          _ParameterPtr lPara0= m_pCmd->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 <<"全部数据跑批完成"<<endl;     ////////////////////////        _bstr_t  v_return,v_text;         v_return = m_pCmd->Parameters->GetItem("O_RUNSTATUS")->GetValue();      temp = (string)(_bstr_t)v_return;     ::CoUninitialize();      return temp;    //m_pCmd.Detach();      } // 捕捉异常 catch(_com_error e) {    // 显示错误信息      cerr << "\nERROR:" << (char*)e.Description();//抛出异常    ::CoUninitialize();    return temp; }   } void Logdetail(string logname) {    // 取当前系统时间      ////////////////////////////////////////////////////////////////////////////////    time_t timer;    time(&timer);    tm* t_tm = localtime(&timer);    int syshour = t_tm->tm_hour;    int sysminiute =  t_tm->tm_min;    int syssecond  =  t_tm->tm_sec;    long sysdate = getSystemDate();    char sysdatechar[13];     memset(sysdatechar,0,13);      ltoa(sysdate,sysdatechar,10);     sysdatechar[8]='.';    sysdatechar[9]='l';    sysdatechar[10]='o';    sysdatechar[11]='g';    sysdatechar[12]='\0';        ofstream ofs(sysdatechar,ios::app);        if(sysminiute<10)    {  ofs<<sysdate<<"   "<<syshour<<":"<<"0"<<sysminiute<<":"<<syssecond<<logname<<endl;        ofs<<"   "<<endl;    }    else if(syssecond<10)    {  ofs<<sysdate<<"   "<<syshour<<":"<<sysminiute<<":"<<"0"<<syssecond<<logname<<endl;     ofs<<"   "<<endl;    }    else    {     ofs<<sysdate<<"   "<<syshour<<":"<<sysminiute<<":"<<syssecond<<logname<<endl;     ofs<<"   "<<endl;    }     ofs.close();  } int main(int argc, char* argv[]) {      string edw;    string mart;    string zero = "0";      long sysdate = getSystemDate();    ///////////////////////////////////////edw      Logdetail("EDW数据跑批开始");    edw = Call_Omron_edw_Produce(sysdate);    //cout<<edw<<"dddd"<<endl;    if(edw == zero)         Logdetail("EDW数据跑批完成");      else    {         Logdetail("EDW数据跑批失败");   return 0;    }      /////////////////////////////////////mart    //Logdetail(edw);    Logdetail("MART数据跑批开始");    mart = Call_Omron_mart_Produce(sysdate);    //cout<<mart<<"dddd"<<endl;    if(mart == zero)         Logdetail("MART数据跑批完成");    else     {         Logdetail("MART数据跑批失败");   return 0;    }    //Logdetail(mart);    return 1;    }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服