如何将Variant数据转化成为指定类型的数据或者对象??(100分)

  • 主题发起人 主题发起人 liaotw
  • 开始时间 开始时间
L

liaotw

Unregistered / Unconfirmed
GUEST, unregistred user!
在进行分布式编程时,我遇到一个问题,不知怎么解决,万望高手多多指教:
var
vData:OleVariant;
begin
......
vData:=AdoDataSet1.RecordSet;
//将ADODATASET的RECORDSET原生对象取出保存到vData.
Result:=vData;
end;
......
在客户端进行调用。
begin
......
AdoDataSet1.RecordSet:=vData;
//该句报错。因为类型不匹配。此vData就是上面的vData.
end;
不知哪位师兄能够解决将Variant类型数据转换位_RecordSet类型的数据。
在VB中太简单了。只需要一句:
dim rst as RecordSet
set rst = vData
难道在DELPHI中不能进行此转换?快来救命啊!!
因为我要进行ASP编程。所以不要建议我使用MIDAS中的技术,那太简单了。
 
>> 因为我要进行ASP编程
?? 如果你用ASP调用, 那就直接返回ADO的RecordSet好了,干嘛转化为 Variant!
 
老兄您不知道吗?在分布式编程中传递的参数是不能为RecordSet类型的吗?一般都只能通过
OleVariant类型来传递参数与结果。
希望不要有如此的回答吧?
虽然如此,也是多谢!
难道这个问题就如此的复杂吗?!
 
你是几层哟?你不用ClientDataSet吗?ClientDataSet中不是有一个Data吗?它的类型就是
OleVariant.你直接传进去看看?建议你看看李维的那本<Delphi5.x分散式多层应用系统篇>
 
delphi 也很简单,也是一句话。:)
var
userdataset:tadodataset;
begin
userdataset:=tadodataset.create(nil);
userdataset.Recordset:=IUnknown(userrecordset) as _recordset;
end;
其中userrecordset是客户端传了OLEVARIANT类型的recordset
我就是这么用的,给分。
 
还是Yu_Gao老兄明白了我的意思,也给出了解决的方案,100分送上!
还向请问您,您是怎么想到这个解决方法的呢?
多承指教!
 
说来惭愧,不久前我也遇到了这个问题,只好上搜索引擎查关键字delphi recordset
找了好久有外国友人会,于是就拿来用了,不敢指教。
 
后退
顶部