大家帮忙出个主意。
如果
MyCon := TADOConnection.Create(nil);
是写在一个Button的OnClick中,就没有问题。就是Console App里不行。

解决方案 »

  1.   

    在一开始(如放在Initialization段中)调用CoInitialize
    CoInitializeEx在ActiveX单元里。
      

  2.   

    program Project2;{$APPTYPE CONSOLE}uses
      SysUtils,activex,adodb;begin
      { TODO -oUser -cConsole Main : Insert code here }
      CoInitialize(nil);
      with tadoconnection.create(nil) do
        begin
          connectionstring:='..';
         ......
          free;
        end;
    ......
    end.
      

  3.   

    太可恶了,我用资源管理器查找Delphi6\Source目录下包含CoInitialize的文件,一个都找不到!气死我了!
      

  4.   

    奇怪!
    如果Project中包含Form的话,CoInitialize就自动执行了?
    如何知道一个Project有没有执行过CoInitialize?
      

  5.   

    在ComObj.pas文件里有CoInitializeEx变量的声明。
    在这文件中,还有一个过程InitComObj使用了此变量。
      

  6.   

    另外,你可以使用以下代码来调用ConnectString的属性编辑器:
    uses AdoConEd;begin
      ADOConnection.Close;
      EditConnectionString(ADOConnection);
      ADOConnection.Open;
    end;