首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

EVariantInvalidArgError Invalid argument解决思路

2012-08-07 
EVariantInvalidArgError Invalid argument我在做一个三层时(使用TSocketConnection),正常查询没有问题。但

EVariantInvalidArgError Invalid argument
我在做一个三层时(使用TSocketConnection),正常查询没有问题。
但我在TCPSERVER.execute中查询时,则提示如标题的错误。怎么解决?
如果查询本地数据库,也没有问题

简单测试代码如下:

Delphi(Pascal) code
//以下如果直接调用,没有问题。procedure TForm1.GetIDFromMAC(Mac: string);begin try//如果将下面的查询,改成本地数据,没有问题 CDSSearch是连接远程数据库。  CDSSearch.Close;   CDSSearch.CommandText:='Select * from HostList Where Trim(MAC) = "'+MAC+'"';  CDSSearch.Open;  if CDSSearch.IsEmpty then   ShowMessage('can''t find')   else ShowMessage('find it'); except on E:Exception do  ShowMessage(e.Message); end;end;procedure TForm1.TcpServerExecute(AContext: TIdContext);begin   GetIDFromMAC('00:10:23:14');end;


感谢!

[解决办法]
出現EVariantInvalidArgError類別的錯誤"Invalid argument"
检查函数的关键字
[解决办法]
出現EVariantInvalidArgError類別的錯誤"Invalid argument"
检查函数的关键字
[解决办法]
對象創建在進程默認堆里面,而線程是共享進程堆的。
可以事先創建連接對象,後聲明一個全局的變量,來引用此對象,
[解决办法]
Delphi(Pascal) code
procedure TForm1.GetIDFromMAC(Mac: string);begin try//如果将下面的查询,改成本地数据,没有问题 CDSSearch是连接远程数据库。  CDSSearch.Close;   CDSSearch.CommandText:='Select * from HostList Where Trim(MAC) = "'+MAC+'"';  CDSSearch.Open;  if CDSSearch.IsEmpty then   ShowMessage('can''t find')   else ShowMessage('find it'); except on E:Exception do  ShowMessage(e.Message); end;
[解决办法]
帮顶
[解决办法]
你在edit後,show一下FieldByName('Mac').AsString,確認是否為要編輯的記錄
[解决办法]
ApplyUpdates(-1);
要对应一个没有其它对象引用的socketconneting连接!
所以我认为不怎么好用
你可以在cds的对应的字段的onchange事件中写update语句,更好!

热点排行