ADO连接SQL SERVER2008

1. BOOL ADOConn::OnInitADOConn()
{
    // 初始化OLE/COM库环境
    if( !m_bCoInitialize)
    {
        if( S_OK!= ::CoInitialize(NULL))
        {
            AfxMessageBox(_T("初始化COM库错误!"));
        }
    }
 
    try
    {
        // 创建Connection对象
        HRESULT hr = m_pConnection.CreateInstance("ADODB.Connection");
        if( SUCCEEDED( hr))
        {
            // 设置连接字符串,必须是BSTR型或者_bstr_t类型 
            _bstr_t strConnect = "Provider=SQLOLEDB; Server=(local); Database=001; Integrated Security=SSPI; uid=test; pwd=12345;";
 
            hr = m_pConnection->Open(strConnect,"","",adModeUnknown);
            if( SUCCEEDED( hr))
            {
                return true;
            }
        }
        else
        {
            AfxMessageBox(_T("创建Connection对象失败!"));
        }
    }
    catch(_com_error e)        // 捕捉异常
    {
        // 显示错误信息
        AfxMessageBox(e.Description());
    }
 
    return false;
}
 
2. int ADOConn::GetVehicleNum()
{
    int nRet = 0;
 
    int nInto = 0;
    int nOut = 0;
 
    if( NULL != m_pConnection)
    {
        // 创建车辆入场记录集对象
        if( NULL == m_pRecordsetInto)
        {
            m_pRecordsetInto.CreateInstance(__uuidof(Recordset));
        }
 
        HRESULT hr = m_pRecordsetInto->Open(_T("SELECT IC卡号码 FROM 车辆入场"), _variant_t((IDispatch *)m_pConnection, true),
                adOpenStatic, adLockReadOnly, adCmdText);
        if( SUCCEEDED( hr))
        {
            // 得到车辆入场记录条数
            nInto = m_pRecordsetInto->RecordCount; 
        }
 
        // 创建车辆出场记录集对象
        if( NULL == m_pRecordsetOut)
        {
            m_pRecordsetOut.CreateInstance(__uuidof(Recordset));
        }
 
        hr = m_pRecordsetOut->Open(_T("SELECT IC卡号码 FROM 车辆出场"), _variant_t((IDispatch *)m_pConnection, true),
                adOpenStatic, adLockReadOnly, adCmdText);
        if( SUCCEEDED( hr))
        {
            // 得到车辆出场记录条数
            nOut = m_pRecordsetOut->RecordCount; 
        }
    }
 
    nRet = nInto - nOut;
 
    return nRet;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值