如何在客户端和应用服务器端的方法中相互传递参数和数据?

fsstolw 2002-11-15 03:20:55
在一个三层的数据库应用中,如何在应用服务器做一个方法,使得客户端调用这个方法,传递一个参数到应用服务器中,该方法能根据这个参数进行一些计算后生成另一个数据返回给客户端。
这个问题的要求是最好不使用OLEVARANT这样的变量,因为太复杂,请给出BSTR之类简单的实现方法的例子最好。
...全文
78 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fsstolw 2002-11-17
  • 打赏
  • 举报
回复
谢谢猛禽!
猛禽 2002-11-17
  • 打赏
  • 举报
回复
客户端

WideString s;

AppSvr->GetParamID( "YourParamName", &s );
ShowMessage( s );
fsstolw 2002-11-16
  • 打赏
  • 举报
回复
如果我的SERVER端的方法是这样定义的:
STDMETHODIMP TDMParamIDImpl::GetParamID(BSTR ParamName, BSTR* intReturn)
{
AnsiString strParamName = ParamName;
// WideString strResult ;

try
{
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("select * from Parameters where ParamName = :ParamName");
Query1->SQL->ParamByName("ParamName")->AsString = strParamName;
Query1->ExecSQL();

*intReturn = Query1->FieldByName("ParamValue")->AsString;

return 0;
}
catch(Exception &E)
{
*intReturn = (WideString("数据操作失败!")).Detach() ;
return -1;
}
}

那么,想再问一下我的客户端应该怎么传递参数及取得返回值呢?
fsstolw 2002-11-16
  • 打赏
  • 举报
回复
谢谢!
猛禽 2002-11-16
  • 打赏
  • 举报
回复
那也可以啊:
TStrings * ss = new TStringList();

ss->Values['Param1'] = 'Value1';
ss->Values['Param2'] = 'Value2';
CallServer( ss->Text );
delete ss;

server side

TStrings * ss = new TStringList( );

ss->Text = argument;
// ss->Values['Param1'], ss->Values['Param2']...
delete ss;

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧