我在一个form里面用了一个timer控件,每隔0.2秒钟就执行一次,
代码里是用adoquery对数据库进行查询,另外里面还调用了一个
Dll,我发现一运行它,内存就每分钟涨0.8MB,运行不久就死机了,
其中如果只查询数据库也会涨内存,只调用DLL也会涨内存,
请问各位大虾怎么解决?
代码里是用adoquery对数据库进行查询,另外里面还调用了一个
Dll,我发现一运行它,内存就每分钟涨0.8MB,运行不久就死机了,
其中如果只查询数据库也会涨内存,只调用DLL也会涨内存,
请问各位大虾怎么解决?
解决方案 »
- 还有一个控件方面的小问题!
- wise打包问题:无法对隐藏文件进行打包?
- 很急的问题在线等,不知道有没有朋友也碰到过这类问题的~
- DBGrid如何实现从数据库读数据显示时候如csdn论坛上的班马条效果颜色?
- 一个简单的查询问题,高手请进
- 程序长时间工作的问题,工作一段时间以后系统就认为我的程序不响应了,动一下就有好了
- 你见过吗?中文输入法在程序中莫名消失的奇怪事~~~~~~~~
- 怎么限制edit1只能输入数字并6位
- 主程序exe窗体中嵌入dll中的窗体,请看代码及帮忙解决?
- 如何声明一个全局变量,在所有的form中都可以使用
- 请教:如何使DBgrid的某一列不显示出来
- 请教关于DisplayFormat的显示格式的问题
implementation
function shrf_init(comstr:pchar):integer;
stdcall;external 'shrf32wc.dll';
function shrf_exit():integer;
stdcall;external 'shrf32wc.dll';
function shrf_halt():integer;
stdcall;external 'shrf32wc.dll';
procedure TForm1.Timer1Timer(Sender: TObject);
begin
shrf_init(pchar('COM1'));
query.Active := false;
query.SQL.Add('select meetingID from tbl_meeting where meetingCurrent = ''1''');
query.Active := true;
if query.RecordCount >= 1 then
meetingID := query.fieldByName('meetingID').AsString;
shrf_halt();
shrf_exit();
end;
请问怎么释放内存?
在shrf_exit中是否进行了释放?
*****
query.SQL.Add('select meetingID from tbl_meeting where meetingCurrent = ''1''');
query.Active := true;
if query.RecordCount >= 1 then
meetingID := query.fieldByName('meetingID').AsString;****处是否少写了query.SQL.clear;
query.Active := false;
query.SQL.Add('select meetingID from tbl_meeting where meetingCurrent = ''1''');
query.Active := true;
if query.RecordCount >= 1 then
meetingID := query.fieldByName('meetingID').AsString;
query.active := False;试一试
begin
Try
Connection := ...;
Sql.Text := 'select meetingID from tbl_meeting where meetingCurrent = ''1''';
Open;
if RecordCount >1 then
meetingID := FieldByName('meetingID').AsString;
Finally
Free ;
End;
end;
如果是的话此问题应该是个bug,使用ado异步访问模式+odbc访问vfp数据库时就会出现该问题,一打开查询后,内存就不不断的增长