• _com_error e


    #import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "adoEOF") //引用ado组件
    #include  <stdio.h> 
    #include  <icrsint.h> 
    #include  "iostream.h" 
    
    class CCustomRs : public CADORecordBinding 
    { 
    BEGIN_ADO_BINDING(CCustomRs) 
       ADO_VARIABLE_LENGTH_ENTRY2(1, adVarChar, m_szau_lname,  
             sizeof(m_szau_lname), lau_lnameStatus, false) 
       ADO_VARIABLE_LENGTH_ENTRY2(2, adVarChar, m_szau_fname,  
             sizeof(m_szau_fname), lau_fnameStatus, false) 
       ADO_VARIABLE_LENGTH_ENTRY2(3, adVarChar, m_szphone,     
             sizeof(m_szphone),    lphoneStatus,    true) 
    END_ADO_BINDING()
    
    public: 
       CHAR   m_szau_lname[41]; 
       ULONG  lau_lnameStatus; 
       CHAR   m_szau_fname[41]; 
       ULONG  lau_fnameStatus; 
       CHAR   m_szphone[12]; 
       ULONG  lphoneStatus; 
    };
    
     
    VOID main() 
    { 
    
        ::CoInitialize(NULL); 
    
        _ConnectionPtr pConn; //定义连接
        pConn.CreateInstance(__uuidof(Connection));   //实例化
      
        _RecordsetPtr pRs  = NULL; //定义记录集
        _CommandPtr  pCmd  = NULL; //定义command
    
        pConn-> Open("Provider=SqlOleDb;Server=(local);Database=tst","sa","xxx",adConnectUnspecified); //打开连接
    
        pRs.CreateInstance(__uuidof(Recordset)); //实例化
        pCmd.CreateInstance(__uuidof(Command)); 
        pCmd-> CommandText = "raiserror ('该借阅证本日借阅书籍已超过3本,请改日再借',16,10) "; //命令字串,要执行的语句
    
    
        try
        {
            pCmd-> PutActiveConnection(_variant_t((IDispatch*)pConn)); //将pConn赋为command的活动连接
            pRs = pCmd-> Execute(NULL,NULL,adCmdText); //用cmd.execute方法得到记录集
            pRs-> Close();  
            pConn-> Close(); 
        }
        catch(_com_error& e) 
        {
            cout << "错误信息:" << e.ErrorMessage() <<endl;
            cout << "错误源:" << e.Source() <<endl;
            cout << "错误描述:" << e.Description()  <<endl;
    
        }
    
      
        CoUninitialize(); 
    }
    /*
    结果
    --------------------------
    错误信息: IDispatch error #3092
    错误源: microsoft oledb provider for sql server
    错误描述:该借阅证本日借阅书籍已超过3本,请改日再借
    
    */
  • 相关阅读:
    泛型接口(C# 编程指南) From MSDN
    不知道是不是心理作用,我怎么觉得在Fedora下写cnblogs比Windows下快。
    VS.NET 2005真是太好用了!
    写了个打字游戏,可是有问题(C#)
    C#多线程测试
    关于继承的一个小程序
    VS.NET 2008 试用
    基本排序算法及分析(二):冒泡排序
    基本排序算法及分析(三):shell排序
    [导入]一维数组输出杨辉三角形
  • 原文地址:https://www.cnblogs.com/plus/p/2736789.html
Copyright © 2020-2023  润新知