#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
//避免与文件的结束符号混淆,将EOF改为adoEOF
------------------------------------------------------------------
::CoInitialize(NULL);
------------------------------------------------------------------
_ConnectionPtr m_pConnection; //连接数据库的Com智能指
m_pConnection.CreateInstance("ADODB.Connection"); //建立实例返回HRESULT
try
{
m_pConnection->Open("Driver={SQL Server};Server=localhost;Database=Northwind;UID=sa;PWD=wxy","","",adModeUnknown);
........ //其他数据库操作
}
catch(_com_error e)
{
........//错误处理
}
------------------------------------------------------------------
_CommandPtr m_pCommand;
m_pCommand.CreateInstance("ADODB.Command");
m_pCommand->ActiveConnection = m_pConnection;
m_pCommand->CommandText = "Test";//存储过程名为Test
CREATE PROCEDURE Test
@id int,
@Name varchar(20),
@sdate datetime,
@ret char(1) output
AS
insert into VCStorproc values(@id,@Name,@sdate)
if @@error=0
set @ret=1
else
set @ret=0
GO
------------------------------------------------------------------
_ParameterPtr m_pParam;
m_pParam.CreateInstance("ADODB.Parameter");
_ParameterPtr m_pParam1;
m_pParam1.CreateInstance("ADODB.Parameter");
_ParameterPtr m_pParam2;
m_pParam2.CreateInstance("ADODB.Parameter");
_ParameterPtr m_pParamRet;
m_pParamRet.CreateInstance("ADODB.Parameter");
------------------------------------------------------------------
m_pParam = m_pCommand->CreateParameter("id",adInteger,adParamInput,-1,(_variant_t)"10"); //给参数设置各属性
m_pCommand->Parameters->Append(m_pParam); //加入到Command对象的参数集属性中
m_pParam1 = m_pCommand->CreateParameter("Name",adVarChar,adParamInput,20,(_variant_t)"songwenfeng");
m_pCommand->Parameters->Append(m_pParam1);
m_pParam2 = m_pCommand->CreateParameter("sdate",adVarChar,adParamInput,32,(_variant_t)"2004-6-8");
m_pCommand->Parameters->Append(m_pParam2);
------------------------------------------------------------------
m_pParamRet=m_pCommand->CreateParameter("ret",adChar,adParamOutput,1);
m_pCommand->Parameters->Append(m_pParamRet);
------------------------------------------------------------------
m_pCommand->Execute(NULL,NULL,adCmdStoredProc);
------------------------------------------------------------------
m_pConnection->Close();
CoUninitialize();
------------------------------------------------------------------
_ConnectionPtr m_pConnection;
_CommandPtr m_pCommand;
------------------------------------------------------------------
HRESULT hr;
hr=m_pConnection.CreateInstance(__uuidof(Connection));
try
{
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open(_bstr_t(L"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Viper;Data Source=Viper"),_bstr_t (L"sa"),_bstr_t (L""),adModeUnknown);
}
}
catch(_com_error & err)
{
AfxMessageBox(err.Description(),MB_OK,0);
AfxMessageBox(err.ErrorMessage(),MB_OK,0);
AfxMessageBox("无法连接SQL SERVER 服务器,程序将退出。请检查网络设备",MB_OK,0);
exit(0);
}
------------------------------------------------------------------
CString cvar1,cvar2;
int cvar3;
cvar1="ddd";
cvar2="";
cvar3=0;
try
{
m_pCommand.CreateInstance(__uuidof(Command));
m_pCommand->ActiveConnection=app->m_pConnection;
m_pCommand->CommandType=adCmdStoredProc;
m_pCommand->CommandText=_bstr_t("pr_zs_dzdy");
_variant_t vvar1,vvar2,vvar3;
vvar1=_variant_t(_bstr_t(cvar1));
vvar2=_variant_t(_bstr_t(cvar2));
vvar3=_variant_t(cvar3);
_ParameterPtr mp_var1,mp_var2,mp_var3;
mp_var1.CreateInstance(__uuidof(Parameter));
mp_var2.CreateInstance(__uuidof(Parameter));
mp_var3.CreateInstance(__uuidof(Parameter));
mp_var1=m_pCommand->CreateParameter
(
_bstr_t("var1"),
adVarChar,
adParamInput,
3,
vvar1
);
m_pCommand->Parameters->Append(mp_var1);
mp_var2=m_pCommand->CreateParameter
(
_bstr_t("var2"),
adVarChar,
adParamOutput,
3,
vvar2
);
m_pCommand->Parameters->Append(mp_var2);
mp_var3=m_pCommand->CreateParameter
(
_bstr_t("var3"),
adIntger,
adParamOutput,
9,
vvar3
);
m_pCommand->Parameters->Append(mp_var3);
_variant_t vNull;
vNull.vt=VT_ERROR;
vNull.scode=DISP_E_PARAMNOTFOUND;
m_pCommand->Execute(&vNull,&vNull,adCmdStoredProc);
cvar2=mp_var2->Value.bstrVal;
cvar3=mp_var3->Value;
}
catch(_com_error &error)
{
MessageBox(error.ErrorMessage(),"ADO错误!");
MessageBox(error.Description(),"ADO错误!");
}