下面是我的文章,有人把它翻译成了中文。 本文为你演示怎样在客户端执行存贮过程。
假如你的存贮过程返回一个数据集,那你需要调用 TStoredProc 的 Open 方法,然后,只需要使用 TDataSetProvider 来连接它就行了。效果很好。
假如你的存贮过程不返回一个数据集,这就意味着需要调用 TStoreProc 的 ExecProc 方法。步骤是:
1 为你的接口增添一个方法
procedure ExecProc(Params: Integer);
2 在 remote data module中写实现代码
procedure ExecProc(Params: Integer);
begin
StoredProc1.ParamByName('@Param').AsInteger := Params;
StoredProc1.ExecProc;
end;
3 在客户端,调用此过程
DComConnection1.AppServer.ExecProc(1);
That is Ok.
假如你的存贮过程返回一个数据集,那你需要调用 TStoredProc 的 Open 方法,然后,只需要使用 TDataSetProvider 来连接它就行了。效果很好。
假如你的存贮过程不返回一个数据集,这就意味着需要调用 TStoreProc 的 ExecProc 方法。步骤是:
1 为你的接口增添一个方法
procedure ExecProc(Params: Integer);
2 在 remote data module中写实现代码
procedure ExecProc(Params: Integer);
begin
StoredProc1.ParamByName('@Param').AsInteger := Params;
StoredProc1.ExecProc;
end;
3 在客户端,调用此过程
DComConnection1.AppServer.ExecProc(1);
That is Ok.
解决方案 »
- cxgrid显示的图片怎么导出到excel?
- 问个关于ClientDataset的问题!紧急
- 在线程中如何使用TClientSocket组件并自动检测该组件的事件?
- 请问如何获得本机名称和服务器名称。
- 无法编译,在线急等
- 如何单独取得TDateTimePicker控件的年度和月份
- 我靠,碰到一个返回最大值的问题,帮忙看看?
- 从主窗体按钮SHOW一个普通的TFORM窗体,带参数,但老出错,详情请进来瞧!!!
- 关于ClientSocket与ServerSocket的一个问题
- 调查:各位加班有没有报酬或可以增加自己的假期.(欢迎发言)
- 问大家一个很棘手的问题,有结果一定给分
- 请教一个关于ADOConnection控件属性设置的问题,谢谢!
select count(用户) as count from 用户信息表 where 用户名=:user and 密码=:passwd
在客户端的登录中对user和passwd进行赋值,使用Module.ADOqUERY1.OPEN的返回值登陆验证;
CREATE procedure loginconfirm
@username char(20),
@password char(20),
@flag bit //返回值,用于客户端的进一步处理。
as
declare @userID UNIQUEIDENTIFIER / /在用户验证表中的newid()自动生成,用于判别是否有该记录。SELECT @userID = userID
FROM user_info
WHERE username = @username and psword = @passwordif @userID is null
begin
set @flag = 0
end
if @userID is not null
begin
set @flag = 1
end
GO
然后,在remote data module中加一个tadostoredproc
procedure name:loginconfirm
prepared:true
paremeters中自动出现了四个参数
用数据provider相连客户端clientdataset连接provider
我认为应该 相当于直接调用了存储过程
dataset获取参数时也显示了参数表
procedure TForm1.Button1Click(Sender: TObject);
begin
clientdataset1.Params[2].Value :=strtoint(edit1.text);
clientdataset1.Params[3].value :=strtoint(edit2.text);
edit3.text:=inttostr(clientdataset1.Params[4].Value) ;
end;
结果无法调通,错误莫名其妙
我相信一定有更为简洁的方法解决这个问题。
chechy的方法就是要再写代码,不是很方便,但是能解决问题,问题解决了我给你加分;rwdx的方法是个思想,太简略,我也试过,能用,太麻烦,会相应加分;ljq的方法又是一个思路,非常有启发性,一并会加分。
重要的不是分数,是帮忙的这份侠义,谢谢。
希望有人再参与一下。