请大家帮忙看看下面的代码...
多层数据库开发
服务器端定义的方法如下:
STDMETHODIMP TLogin_ServerImpl::QueryGoodsData(BSTR ASQLText,
VARIANT* AData, long* AError)
{
*AError=0;
try
{
m_DataModule->ADOQuery1->Close();
m_DataModule->ADOQuery1->Connection = m_DataModule->ADOConnection1;
m_DataModule->ADOQuery1->SQL->Clear();
m_DataModule->ADOQuery1->SQL->Add(ASQLText);
m_DataModule->DataSetProvider1->DataSet = m_DataModule->ADOQuery1;
m_DataModule->ADOQuery1->Open();
*AData=m_DataModule->DataSetProvider1->Data;
SetComplete();
}
catch(...)
{
SetAbort();
*AError=1;
}
return S_OK;
}
客户端调用如下:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TCOMILogin_Server objWS = CoLogin_Server::Create();
WideString sSQLCommand;
Variant SSResult;
sSQLCommand = ledtSQL->Text;
long nError=-1;
objWS->QueryGoodsData(sSQLCommand,(Variant)&SSResult,&nError);
if(nError==0)
{
ClientDataSet1->Data = SSResult;
}
else
{
ShowMessage(IntToStr(nError));
}
}
执行后nError还是为-1,好象没有执行的一样,请大家帮忙解决一下!谢谢!