一个非常简单的问题,关于variant参数传递(50分)

  • 主题发起人 主题发起人 三少
  • 开始时间 开始时间

三少

Unregistered / Unconfirmed
GUEST, unregistred user!
应用层采用Mts data Module,在data Module中有一Query控件,
SQL.text:='select * from table1 where some condition'
得到一个多条数据的结果集,这个结果集如何通过参数来传递到客户端呢?
客户端不使用TClientDataSet,只有一个连接,Dcomconnection.
我用了OleVariant,但是不会用,请教大虾!
 
为什么不用ClientDataSet?
 
因为规定不许用clientdataset
 
variant参数是delphi的一种特殊变量类型
和vb的变量类似,他可以从各种不同类型
之间自动的相互转换
入char-》int
int->float
float->char
......
您就当他是一个万能变量就行了
 
如果要把数据集用Variant传递该怎么办呢?哪里有代码可以借鉴?
 
同意thtfsyh
要看你具体的怎么用!
 
function gettable:variant;
var
i,j,COL,ROW:integer;
a:array of string;
begin
setlength(a,ROW);
for j:=0 to ROW-1 do
setlegth(a,COL);
//给A[I,J] 副职
FOR I:=0 TO ROW-1 DO
FOR J:=0 TO COL-1 DO
A[I,J]:='AA'
RESULT:=A
end;
 
只能传DataSet中的数据部分
1. 先 DataSet1.SaveToStream
2. 再执行 StreamToVariant
3. 另一边收到再 VariantToStream
4. 再 DataSet2.LoadFromStream

StreamToVariant, VariantToStream在 www.delphi3000.com 上有文章介绍源码
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部