呵呵.
#import "f:/program files/common files/system/ado/msado15.dll" /
no_namespace /
rename("EOF","EndOfFile")
_ConnectionPtr piConnection; //定义一个连接变量
在声明的地方加入
//初始化SQLServer数据库
void InitSQLServer(CString server,CString db,CString UserName,CString Pwd)
{
piConnection.CreateInstance("ADODB.Connection");
CString strCn;
strCn.Empty();
strCn="provider=SQLOLEDB;data source="+server
+";initial catalog="+db
+";userID="+UserName
+";Password="+Pwd;
_variant_t bcnstr=_variant_t(strCn);
_variant_t bunstr=_variant_t(UserName);
_variant_t bpwdstr=_variant_t(Pwd);
//打开一个连接
piConnection->Open(_bstr_t(bcnstr),_bstr_t(bunstr),
_bstr_t(bpwdstr),-1);//adOpenUnspecified
}
//执行存贮过程,将值返回
//存贮过程创建于pubs数据库,代码在目录下的test存贮过程.txt中
//
CString ExecStoreProc(int id)
{
_CommandPtr cmd;
cmd.CreateInstance("ADODB.Command");
//id号
_ParameterPtr pParamRk;
pParamRk.CreateInstance("ADODB.Parameter");
pParamRk->Name="job_id"; //存储过程的参数1
pParamRk->Type=adInteger; //整型
pParamRk->Size=2; //
pParamRk->Direction=adParamInput;//表明是输入参数
CString tstr;
tstr.Format("%d",id);
pParamRk->Value=_variant_t(tstr);//int->CString->_variant_t后赋值
cmd->Parameters->Append(pParamRk);
//返回值
_ParameterPtr pParamOk;
pParamOk.CreateInstance("ADODB.Parameter");
pParamOk->Name="desc"; //参数2名称
pParamOk->Type=adChar; //字符串
pParamOk->Size=20; //大小为20个字节
pParamOk->Direction=adParamOutput; //声明是输出参数
cmd->Parameters->Append(pParamOk);
//_variant_t TheValue = MySet->GetCollect("FIELD_1");
//CString sValue=(char*)_bstr_t(TheValue);
cmd->ActiveConnection = piConnection;
cmd->CommandText="test"; //存储过程的名字
cmd->CommandType=adCmdStoredProc;//表示为存储过程adCmdStoredProc
//执行,获得结果
cmd->Execute(NULL, NULL, adCmdStoredProc);
//将值返回
return (char*)_bstr_t(pParamOk->Value);
}
//关闭数据库
也可以操作 RecordSet的.
这中方法使用 ADO COM 原生的接口