今天梅花三弄:一场异常的故事(33分)

  • 主题发起人 主题发起人 千中元
  • 开始时间 开始时间

千中元

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Edit2Change(Sender: TObject);
begin
try
DataModule2.ClientDataSet1.Locate('categroy',vararrayof([edit2.text]),[locaseinsensitive,lopartialkey]);
except
showmessage('hehe')
end;
这个代码的用途应该是定位于edit2中输入的部分键值
可在edit2框中改动任何东西都触发异常,根本没办法定位。
Oicq俱乐部的一个大侠说要“
你把except部份的showmessage改成
ShowException(ExceptObject,ExceptAddr)看出了什么问题。”
exceptObject,exceptaddr参数是什么意思?
有没有其他的解决办法?
 
百年大旱
 
你先把except去掉,看看到底是什么异常?
 
对,用DelphiIDE跟踪。
ShowException在SYSUtils中。ExceptObject: TObject;
ExceptAddr: Pointer;
ExceptObject是异常的类,ExceptAddr是出现异常的内存地址。用
ExceptAddr可能看不出什么东西。
 
帮你提前
 
我估计是 vararrayof([edit2.text]) 这东西有问题
 
我的看法,
1、问题不在Locate是不是你的CLIENTDATASET没有打开,或是别的。
2、你的vararrayof([edit2.text]) 这东西可能有点不对。
 
这样试一下
Locate('categroy',edit2.text,[]);
最大的可能是你的Clinentdateset 没有指定数据,或指定的不对,
看一下Clinentdateset中有没有Categriy字段。
 
我已经试过了,程序本身没有问题。
可能是你的远方应用服务器、连接控件(比如DcomConnection)或者
ClientDataSet有问题
 
如果key只有一个字段,则keyvalues不用转换为Variant array,去掉vararrayof
 
hehe,粥少
 
后退
顶部