R
renzhm
Unregistered / Unconfirmed
GUEST, unregistred user!
在客户端实现显示数据的功能,用动态SQL语句实现,考虑到维护的方便性,SQL语句
不在客户端编写,而在服务端编写,而服务端的TQuery控件也采用动态赋值的方法,但
如何把SQL语句传给TQuery控件?本人用几种方法均告失败。
1、服务器端写一过程:
procedure Displayinfo;
begin
Query.Close;
Query.SQL.Clear;
Query.SQL.Add(SQL语句);
Query.Open;
end;
在客户端调用:
...
ClientDataSet.Close;
Server.DisplayInfo;
ClientDataSet.Open;
这个方法将导致灾难性错误,连Delphi都不能捕获。
.......
在万般无奈的情况下,我采用了个苯方法:
在服务器端编写一过程,返回SQL语句,再由客户端传回到服务器端,宣告成功!
客户端:
ClientDataSet.Close;
ClientDataSet.DataRequest('由服务器端传来的SQL语句');
ClientDataSet.Open;
当然在服务器端,对应的TDataSetProvider的OnDataRequest事件中:
Query.SQL.Text:=Input;
------------------------------------------------------------------
很清楚,这种方法虽然能够实现,但“极不科学”,请问我的第一种方法错在哪?
还有什么更好的方法?请不吝赐教。
[!]
不在客户端编写,而在服务端编写,而服务端的TQuery控件也采用动态赋值的方法,但
如何把SQL语句传给TQuery控件?本人用几种方法均告失败。
1、服务器端写一过程:
procedure Displayinfo;
begin
Query.Close;
Query.SQL.Clear;
Query.SQL.Add(SQL语句);
Query.Open;
end;
在客户端调用:
...
ClientDataSet.Close;
Server.DisplayInfo;
ClientDataSet.Open;
这个方法将导致灾难性错误,连Delphi都不能捕获。
.......
在万般无奈的情况下,我采用了个苯方法:
在服务器端编写一过程,返回SQL语句,再由客户端传回到服务器端,宣告成功!
客户端:
ClientDataSet.Close;
ClientDataSet.DataRequest('由服务器端传来的SQL语句');
ClientDataSet.Open;
当然在服务器端,对应的TDataSetProvider的OnDataRequest事件中:
Query.SQL.Text:=Input;
------------------------------------------------------------------
很清楚,这种方法虽然能够实现,但“极不科学”,请问我的第一种方法错在哪?
还有什么更好的方法?请不吝赐教。
[!]