连ADO,错在哪????~~~``
http://community.csdn.net/Expert/topic/3450/3450090.xml?temp=.2066614
-----------------------------------------------------------------------
在class CHotel_MIS1App : public CWinApp中加入
public:
bool ADOExecute(_RecordsetPtr &ADOSet,_variant_t &strSQL);
_RecordsetPtr m_pADOSet;
int m_iLoginCount;
CString m_sCurrentUser;
CHotel_MIS1App();
extern CHotel_MIS1App theApp;
private:
_ConnectionPtr ADOConn;
在stdafx.h中加入:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace\
rename("EOF","EndOfFile")\
rename("LockTypeEnum","newLockTypeEnum")\
rename("DataTypeEnum","newDataTypeEnum")\
rename("FieldAttributeEnum","newFieldAttributeEnum")\
rename("EditModeEnum","newEditModeEnum")\
rename("RecordStatusEnum","newRecordStatusEnum")\
rename("ParameterDirectionEnum","newParameterDirectionEnum")
在BOOL CHotel_MIS1App::InitInstance()加入
m_iLoginCount=0;
if(FAILED(::CoInitialize(NULL)))
{
AfxMessageBox("ADO Init failed");
return false;
}
try
{
ADOConn.CreateInstance(__uuidof(Connection));
ADOConn->Open("DNS=Hotel_MIS1;Provider=MSDASQL","sa","",adConnectUnspecified);
}
catch(_com_error &e)
{
CString err;
err.Format("%s",(char*)(e.Description()));
AfxMessageBox(err);
}
catch(...)
{
AfxMessageBox("Unknown Error");
}
m_pADOSet.CreateInstance(__uuidof(Recordset));
在bool CHotel_MIS1App::ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL)
中加入
if(ADOSet->State==adStateOpen)ADOSet->Close();
try
{
ADOSet->Open(strSQL,ADOConn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdUnknown);
return true;
}
catch(_com_error &e)
{
CString err;
err.Format("ADO Error:%s",(char*)e.Description());
AfxMessageBox(err);
return false;
}
在int CHotel_MIS1App::ExitInstance() 中加入
if(adStateOpen==ADOConn->State) ADOConn->Close();
ADOConn.Release();
if(adStateOpen==m_pADOSet->State)m_pADOSet->Close();
m_pADOSet.Release();
return CWinApp::ExitInstance();
这就是全部内容,麻烦大家了!!