真奇怪 我在MIDAS的服务端的接口函数里的一个OleVariant v 但是在客户端调用这个方法时候却说这个Variant 不是个数组??怎么回事? (50分

葬月

Unregistered / Unconfirmed
GUEST, unregistred user!
真奇怪 我在MIDAS的服务端的接口函数里的一个OleVariant v 但是在客户端调用这个方法时候却说这个Variant 不是个数组??怎么回事? (50分)<br />我发现我的问题只所在了,,
我在客户端将个文件流转换为OleVariant上传到服务端
问题是这个OleVariant有可能是0(没有文件要上传就赋值为0)
当OleVariant为0的时候, 在服务端那边的添加数据库的行为中
就发生错误,说是 Variant is not Array
因为在服务端我是要把这个OleVariant转换为TStream让
数据库TBlobField(Sql_ADOQuery.FieldByName('照片')).LoadFromStream(Stream);
进行添加的, 现在我该怎么办?? 如何让程序来判断这个OleVariant是0.还是个文件流?
 
errormsg VARIANT *???
是个VARIANT指针?
 
是啊是啊
简单的说如何在m_DCOMConnection.AppServer.AddUser()里返回个字符串
 
你在客户端一定是把这个variant当成变体数组在用了
类似v[0]之类的
 
那我怎么办?如何通过variant返回个字符串??
 
直接当成string用就可以了
类似
showmessage(V);
如果不行
实施
showmessage(VarToStr(V));
 
如果是variant指针, 那么应该用pvariant吧?
取数据该用v^
 
服务端是 var v:OleVariant;
客户端要v^ 真是这样吗?
 
我发现我的问题只所在了,,
我在客户端将个文件流转换为OleVariant上传到服务端
问题是这个OleVariant有可能是0(没有文件要上传就赋值为0)
当OleVariant为0的时候, 在服务端那边的添加数据库的行为中
就发生错误,说是 Variant is not Array
因为在服务端我是要把这个OleVariant转换为TStream让
数据库TBlobField(Sql_ADOQuery.FieldByName('照片')).LoadFromStream(Stream);
进行添加的, 现在我该怎么办?? 如何让程序来判断这个OleVariant是0.还是个文件流?
 
问题解决了,,我用varisarray函数先判断一下
 
if v=nil then
// 为0
else
if v = NULL then
// 为null的variant
else
//
 
顶部