variant类型如何转化为Recordset(100分)

  • 主题发起人 主题发起人 Scrate
  • 开始时间 开始时间
S

Scrate

Unregistered / Unconfirmed
GUEST, unregistred user!
现在我要在Delphi里调用一个用vb写的函数,返回值是Recordset,在Delphi里导入时变成了Variant类型,请问现在我要样才能把variant类型如何转化为Recordset
 
先用vartostr转了再说,其它再来
 
当一个variant类型涉及Com Object时,(Delphi)会尝试将这个对象按缺省类型进行属性
转换并将数据值转换成合适的类型
如果这个Object 没有缺省属性,将引起一个异常。

我的英文不好,翻译的不通,将帮助里的原话一并附上。
If a variant references a COM object, any attempt to convert it reads the
objectdefault property and converts that value to the requested type.
If the object has no default property, an exception is raised.
 
附贈一個函數
function VariantToRecordset(const Value: OleVariant): _Recordset;
begin
With TVarData(Value) do
if VType = varDispatch then
Result := IDispatch(TVarData(Value).VDispatch) as _Recordset
else
Result := nil;
end;

 
Right!!!

Thank you very much!!!
 
to:lorderic
我使用你提供的函数,出现错误“Interface not supported”

出错的语句:
Result := IDispatch(TVarData(Value).VDispatch) as _Recordset
 
后退
顶部