有关TADOConnection创建的问题。

youfly 2002-01-24 06:20:11
interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,DB,ADODB,DBTables;

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
ADOConnection:TADOConnection;
implementation
initialization
ADOConnection:=TADOConnection.Create(Form1);
finalization
ADOConnection.Free;
{$R *.dfm}

end.
这段代码在运行时为什么会出现raise Exception class EOleSysError with message '尚未调用coInitialize.'的错误。该怎么解决。
...全文
92 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
amature 2002-01-24
  • 打赏
  • 举报
回复
我想可能会这样吧:
一个程序运行过程中需要调用很多的DLL,
包括ADO的DLL也要调用很多其他的DLL,
也于COM对象有关,
实在是头大,
关注中。
youfly 2002-01-24
  • 打赏
  • 举报
回复
我是Delphi6的,5的补用在6上可以吗
dreamdragon2008 2002-01-24
  • 打赏
  • 举报
回复
我是D6,也有这个问题。
amature 2002-01-24
  • 打赏
  • 举报
回复
d5中ADO本身是有BUG的,下载个补丁试一试
youfly 2002-01-24
  • 打赏
  • 举报
回复
use 了,还是没用。
wangyong 2002-01-24
  • 打赏
  • 举报
回复
请USE ACTIVEX单元
youfly 2002-01-24
  • 打赏
  • 举报
回复
我想解决的是我上面那种初始化方式出现的问题怎么解决?
因这TADOConnection的创建在有的地方行有的地方不行。
dreamdragon2008 2002-01-24
  • 打赏
  • 举报
回复
unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,adodb;

type
TForm2 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var
ADOConnectionUserDatabase:TADOConnection;
strConnectionString:string;
begin
ADOConnectionUserDatabase:=TADOConnection.Create(self);
strConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=(local);';
with ADOConnectionUserDatabase do
begin
Connected:=False;
ConnectionString:='';
ConnectionString:=strConnectionString;
KeepConnection := False;
LoginPrompt := False;
Mode := cmReadWrite;
Provider := 'SQLOLEDB.1';
try
Connected:=True;
ShowMessage('succeed');
Except
ShowMessage('Failed');
end;
end;
end;

end.

这是用D6编译的。运行通过。
但这段代码我用在一个NT SERVICE程序中时,就出现你说的错,你要是找到原因了,请告之一声。谢谢。

829

社区成员

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

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