我在一个form里面用了一个timer控件,每隔0.2秒钟就执行一次,
代码里是用adoquery对数据库进行查询,另外里面还调用了一个
Dll,我发现一运行它,内存就每分钟涨0.8MB,运行不久就死机了,
其中如果只查询数据库也会涨内存,只调用DLL也会涨内存,
请问各位大虾怎么解决?
代码里是用adoquery对数据库进行查询,另外里面还调用了一个
Dll,我发现一运行它,内存就每分钟涨0.8MB,运行不久就死机了,
其中如果只查询数据库也会涨内存,只调用DLL也会涨内存,
请问各位大虾怎么解决?
解决方案 »
- 在线等,关于在Delphi导入Excel到StringGrid的问题。(附源代码)
- 公式解析器,与数据库关联的公式解析器!!
- INSERT INTO multi_tab(time) VALUES (#13:54:27#) 错在哪里啊,求救
- 请教一个关于ExpressBar中dxBarConverter问题?
- 如何在clientdataset里查找满足条件的纪录
- VC语法的哪位大哥能帮翻译成DELPHI语法的!小弟不会VC!
- 倒分贴投诉热心,顺便加点分!
- groupbox控件的小问题
- 求TQRMemo得到数据库备注字段内容的最简单的办法。谢谢
- 请问在Delphi中能够实现 Object Inspector 的功能呢?
- 请教:如何使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数据库时就会出现该问题,一打开查询后,内存就不不断的增长