delphi写windows服务程序使用unidac连接sqlserver2000时报错OLE DB error occured. Code 800401F0h
2017-07-18 10:14
411 查看
delphi写windows程序使用unidac连接sqlserver2000时报错OLE DB error occured. Code 800401F0h查资料后,搜到如下解决方法:
服务单元引入activex单元,然后在服务执行函数中加入
CoInitializeEx(NIL,COINIT_MULTITHREADED);
CoUnInitialize;
procedure TService.ServiceExecute(Sender: TService);
begin
CoInitializeEx(NIL,COINIT_MULTITHREADED);
..
// your code
..
CoUnInitialize;
end;
另外这两天用多线程调用c#的动态库,发现在线程的执行过程里边也要做上述处理,不然会报com未初始化的错误
procedure TFindThread.Execute;
var
lobj: TTFindImage;
isFind: boolean;
begin
CoInitializeEx(nil,0);
FLog.add('线程' + inttostr(FIdx) + '开始执行');
FLog.Add('大图:' + FBigImg);
FLog.Add('小图:' + FLittleImg);
lobj := TTFindImage.Create(nil);
isFind := (lobj.DefaultInterface as IFindImage).FindPostion(FBigImg, FLittleImg, '', 0);
if isFind then FLog.Add('线程' + inttostr(FIdx) + '定位到小图')
else FLog.Add('线程' + inttostr(FIdx) + '未定位到小图');
FLog.add('线程' + inttostr(FIdx) + '执行结束');
lobj := nil;
CoUnInitialize;
end;
服务单元引入activex单元,然后在服务执行函数中加入
CoInitializeEx(NIL,COINIT_MULTITHREADED);
CoUnInitialize;
procedure TService.ServiceExecute(Sender: TService);
begin
CoInitializeEx(NIL,COINIT_MULTITHREADED);
..
// your code
..
CoUnInitialize;
end;
另外这两天用多线程调用c#的动态库,发现在线程的执行过程里边也要做上述处理,不然会报com未初始化的错误
procedure TFindThread.Execute;
var
lobj: TTFindImage;
isFind: boolean;
begin
CoInitializeEx(nil,0);
FLog.add('线程' + inttostr(FIdx) + '开始执行');
FLog.Add('大图:' + FBigImg);
FLog.Add('小图:' + FLittleImg);
lobj := TTFindImage.Create(nil);
isFind := (lobj.DefaultInterface as IFindImage).FindPostion(FBigImg, FLittleImg, '', 0);
if isFind then FLog.Add('线程' + inttostr(FIdx) + '定位到小图')
else FLog.Add('线程' + inttostr(FIdx) + '未定位到小图');
FLog.add('线程' + inttostr(FIdx) + '执行结束');
lobj := nil;
CoUnInitialize;
end;
相关文章推荐
- delphi写windows服务程序使用unidac连接sqlserver2000时报错OLE DB error occured. Code 800401F0h
- Delphi的TService的輸入桌面切換(服务程序)(windows登录界面如何截图)(使用了OpenDesktop和GetThreadDesktop等API)
- 使用Delphi编写自动关闭Windows信使服务窗体程序
- 用Delphi创建windows服务程序
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- 用Delphi编写Windows服务程序(2)
- 使用Delphi,SDK编写Windows简单程序
- 解决 ERROR - ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
- 使用Delphi,SDK编写Windows简单程序
- 使用Delphi制作自动登录的Windows终端服务客户端
- Windows 防火墙无法运行-“由于另一个程序或正在运行的服务可能正在使用网络地
- 使用Java Service Wrapper 把Java程序作为Windows系统服务
- 使用Java Service Wrapper 把Java程序作为Windows系统服务
- Delphi编写Windows系统服务程序【转帖】
- [整机笔记][原创]Windows无法连接到打印机,打印机后台程序服务没有运行
- C# 使用windows程序控制window服务
- 使用Java Service Wrapper 把Java程序作为Windows系统服务
- 关于使用wse3.0客户机程序在某些机器上连接服务端奇慢的问题
- 使用Java Service Wrapper 把Java程序作为Windows系统服务