BDE中的东东:为什么往数据库中写东西关闭程序的时候总有异常错误?(请关注!!)(200分)

逸魔

Unregistered / Unconfirmed
GUEST, unregistred user!
语句如下:
form4.Table1.Append;
form4.Table1.FieldValues['报警信息']:='';
form4.Table1.FieldValues['时间']:=''
form4.show;
在程序调试的时候,下位机传送数据,上位机接收并记录在数据库中,都没什么问题,
关闭的时候有异常错误(关闭FORM4就是这个数据库的窗口都不会有错误)。
可能不应该是语句的错误,是不是我的什么资源没有释放?我在主窗体的onclose事件中
将:form4.table1.active:=false;但是有时候我还是不能在database中打开TABLE它老说被
占用,忙不能打开。请教各位大虾到底是怎么回事?是不是在所有的东西都得释放,如建立
的连接还有索引?请问怎么释放它们呢?
 
记录append后应要post
 
对,最好手动post或者Cancel先,
但是你说得很可能是这个原因:你使用的是BDE,关闭form4的时候要释放掉,下一次重新创建。
在OnClose里面
Action := caFree;
在OnDestroy里面
Form4 := nil;
 
我试试,我刚刚写漏了一点,我的程序里写了form4.table1.post 这句的
 
form4是子窗体,再创建?
 
shenloqi:
form4是子窗体,我将加上你贴的东东后,我关掉它(其实它以前是在主窗体中最小化了,但是现在就不在主窗体中了)
再在主窗体中打开时,就出异常错误了。怎么办?
 
能否告知你的详细出错信息和你的库结构?
 
库的结构是:DBGRID,DATASOURCE,TABLE。出错信息(以前的出错信息,我没有action:cafree)
是:exacession violent
 
是:eaccessviolation 错误信息。
 
请各位大侠继续关注这里!!!
 
在Form的OncloseQuery中写语句:form4.table1.Close;
form4.Table1:=nil;
 
在oncreat里边把所有的table query都close掉
 
各位大侠提的方法我都试过,但是哪个讨厌的异常错误还是在。
它是:project1.exe raised exception class Eaccessviolation with message"Access
violation at address 004044DE in module.....
这到底是什么错误呀?
但是我现在好象是已经把TABLE里的东东释放了,我关了程序后可以在DATABASE DESKTOP中
修改它的restructure了(以前不行,它老说tabel busy)
 
语句如下:
form4.Table1.Append;
form4.Table1.FieldValues['报警信息']:='';
form4.Table1.FieldValues['时间']:=''
form4.post;
form4.show;
 
你说的不清楚,应该单步跟踪看一下,是哪里出错了
 
form4.Table1.Append;
form4.Table1.edit; // pls add
form4.Table1.FieldValues['报警信息']:='';
form4.Table1.FieldValues['时间']:=''
form4.post;
form4.show;
 
我单步跟踪了的呀,没有错误,只有在关闭整个程序的时候它才说有异常错误,但是在程序用
的过程中一点问题都没有。不知道为什么
 
再post后或在窗体关闭时加上
form4.Table1.FlushBuffers

试试看
 
顶部