服务程序中如何执行查询

lzg827 2011-05-09 04:47:58
用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;
...全文
156 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
浩南_哥 2011-05-10
  • 打赏
  • 举报
回复
初始化时:
CoInitialize(nil);
退出时:
CoUnInitialize;
lzg827 2011-05-10
  • 打赏
  • 举报
回复
to diecode:
提示如下
应用程序发生异常 未知的软件异常(0x0eeddfade),位置为0x7c812afb

to sz_haitao:
能否再说详细一点?coinit....是神马?
lzg827 2011-05-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lzg827 的回复:]
引用 5 楼 m617105 的回复:
初始化时:
CoInitialize(nil);
退出时:
CoUnInitialize;


m617105大侠
可否结合我的程序再说详细一点。具体放的位置在哪里?
我记得这两句是写多线程时经常用的。
非常感谢~~
[/Quote]

试出来了
procedure THFControlSystem.ServiceExecute(Sender: TService);
var
tem:string;
begin
while not Terminated do
begin
Sleep(5000);
CoInitialize(nil); //这里,就是这里

tem :='test';
tem := TemConnGetValueNoPar('select count(1) as R from table);
CoUnInitialize;//这里,就是这里

SaveDIYLog(tem,'Sys.log',True);
ServiceThread.ProcessRequests(False);

end;
end;

服务程序本身就是起了线程的。感谢楼上各位。结贴放分了。


lzg827 2011-05-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 m617105 的回复:]
初始化时:
CoInitialize(nil);
退出时:
CoUnInitialize;
[/Quote]

m617105大侠
可否结合我的程序再说详细一点。具体放的位置在哪里?
我记得这两句是写多线程时经常用的。
非常感谢~~
haitao 2011-05-09
  • 打赏
  • 举报
回复
需要coinit....
diecode 2011-05-09
  • 打赏
  • 举报
回复
错误信息是什么?

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧