定义 _RecordsetPtr pRs ;
_CommandPtr pComm,pCommRs ;
_ParameterPtr pPara1,pPara2,pPara3,pPara4,pPara5;
_ConnectionPtr pConnsql ;先CreateADOCom(),再SeekSqlDbf(),注意connstrSql,别错了。BOOL CSmsSenderDlg::CreateADOCom()
{
if (CoInitialize(NULL) == S_OK )
m_bIsInited = TRUE ;
pRs  = NULL;
pComm = NULL;
pCommRs = NULL;
pConnsql = NULL;
//("正在连接到数据库...");
try
{
pConnsql.CreateInstance(__uuidof(Connection));
pComm.CreateInstance(__uuidof(Command)); 
// pCommRs.CreateInstance(__uuidof(Command)); 
pRs.CreateInstance(__uuidof(Recordset));
//if ((pComm != NULL)||(pRs != NULL)||(pConnsql != NULL)||(pCommRs != NULL))
if ((pComm != NULL)||(pRs != NULL)||(pConnsql != NULL))
;
else
{
//ShowStatus("创建连接对象错");
return FALSE;
}
//CString connstrSql="Uid=sa; Pwd=; dsn=hldg;database=HLDG"; //use ODBC
//CString connstrSql="Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=SZQX;Data Source=bryant"; //NOT use  ODBC

//CString connstrSql= "Uid="+m_SqlUid +";Pwd="+ m_SqlPwd +";dsn="+m_SqlDsn +";"; //use ODBC
CString connstrSql= "Provider=SQLOLEDB.1;Persist Security Info=True;";
connstrSql +=  "User ID="+m_SqlUid +";Password="+ m_SqlPwd +";Initial Catalog="+m_DatabaseName +";Data Source="+m_ServerName; pConnsql->Open(_T(_bstr_t(connstrSql)),_T(""),_T(""),adModeUnknown); 
pComm->ActiveConnection=pConnsql; 
pComm->CommandText="xp_processconfirm";//过程名
pComm->CommandType=adCmdStoredProc;
pComm->CommandTimeout= 5 ; 

pPara1=pComm->CreateParameter("ntype",adInteger,adParamInput,sizeof(int)) ;
pPara2=pComm->CreateParameter ("fid",adVarChar,adParamInput,14);
pPara3=pComm->CreateParameter("fflag",adVarChar,adParamInput,1) ;
pPara4=pComm->CreateParameter ("iRet",adInteger,adParamOutput,sizeof(int));

pComm->Parameters->Append (pPara1) ;
pComm->Parameters->Append (pPara2);
pComm->Parameters->Append (pPara3) ;
pComm->Parameters->Append (pPara4);
}
    catch(_com_error &e)
    {
return FALSE;
    }
return TRUE;
}
void CSmsSenderDlg::SeekSqlDbf()
{ _variant_t value,b;
CString strTemp ;
long nRecordCount = 0 ,nSmsCount = 0 ,nType=1;    _variant_t  vtEmpty (DISP_E_PARAMNOTFOUND, VT_ERROR);
    _variant_t  vtEmpty2(DISP_E_PARAMNOTFOUND, VT_ERROR); try
{  
nType = 1 ;
pPara1->Value = _variant_t(nType);//ntype
pPara2->Value = _variant_t("");//fid
pPara3->Value = _variant_t("");//fflag
pComm->CommandText="xp_processconfirm";//过程名
     pRs = pComm->Execute(&vtEmpty,&vtEmpty2,adCmdStoredProc ); 

value = pPara4->Value ; //iRet 
value.ChangeType(VT_INT); //("成功打开纪录集..."); 
while(!pRs->ENDofsmsfile)
{
nRecordCount ++ ;
value=pRs->GetCollect("fid");
value.ChangeType(VT_BSTR);
strTemp=value.bstrVal;
strTemp.TrimLeft(" ");
strTemp.TrimRight(" "); 
strcpy(m_pwdInfo.fid,strTemp); 

pRs->MoveNext(); 
} pRs->Close();
//("已关闭记录集...");
}
    catch(_com_error &e)
    {
        return  ;
    }
}