服务程序中如何执行查询
用Delphi写了个服务程序。需要定时执行些数据库操作。
在ServiceExecute中直接写了数据库的操作,起服务后报异常错误。去掉问题代码后,正常。但是也了我需要的操作。
如何解决?代码如下
服务程序中定义了如下控件
TFrm= class(TService)
ADOConn: TADOConnection;
ADOCmd: TADOCommand;
ADOQry: TADOQuery;
……
procedure TFrm.ServiceExecute(Sender: TService);
var
tem:string;
begin
while not Terminated do
begin
Sleep(5000);
tem :='test';
tem := GetValueNoPar('select count(1) as R from airline_pay'); //执行查询操作。加上这句就出问题
SaveDIYLog(tem,'Sys.log',True); //操作写入日志
ServiceThread.ProcessRequests(False);
end;
end;
function TFrm.GetValueNoPar(SQL: string): string;
var
TemDataSet: TADOQuery;
begin
TemDataSet := TADOQuery.Create(nil);
try
TemDataSet.Connection := ADOConn;
TemDataSet.Close;
TemDataSet.SQL.Text := SQL;
TemDataSet.Open;
Result := TemDataSet.FieldByName('R').AsString;
finally
TemDataSet.Free;
end;
end;