一段很简单的程序
with qry1 do
begin
close;
sql.Clear ;
sql.Add('select * from xsmc where xsxh_id=:id');
parambyname('id').asstring:=xsdatemp.edit1.text;//  报错
open;
end;raised exception class EAccessViolation with message'Access
violation at address 005bfb5d in module 'xjgl.exe',read of
address 000002fc.   process stopped.为什么会出现这样的错误呢??   急啊!!!!!!!!

解决方案 »

  1.   

    有没有懂啊   我该怎么做?????
    迷茫ing
      

  2.   

    你的这段代码写在什么地方,看看执行时edit是不是已经不可访问了?
      

  3.   

    parambyname('id').asstring:=xsdatemp.edit1.text;//  报错
    如果 xsdatemp 就是你现在的这个窗体的话,建议你把它去掉,也就是
    parambyname('id').asstring:=edit1.text;如果不是这个窗体,那么可能是 xsdatemp 开没有创建,或者是创建之后被 free 掉了。