我在做一个停车场收费系统  中要用到adocommand     我是将adocommand做在一下线程里面的 eg:adocommand.commandtext:='insert into 表(列名) values('')';
   adocommand.excute;我将这个代码放在不是线程中又能成功  但放在线程中就不行了   我应该怎么办  请高手指点

解决方案 »

  1.   


    这样应该没有问题了unit test;interfaceuses
      Classes,ADODB,SysUtils;type
      TTest = class(TThread)
      private
        { Private declarations }    
        ADOCmd:TADOCommand;
      protected
        procedure Execute; override;
      public
        constructor Create(AOwner:TComponent;adoCon:TADOConnection);
        destructor Destroy; override;
      end;implementationconstructor TTest.Create(AOwner: TComponent; adoCon:TADOConnection);
    begin
      FreeOnTerminate:=true;
      ADOCmd:=TADOCommand.Create(AOwner);
      ADOCmd.Connection:=adoCon;
      inherited Create(false);
    end;destructor TTest.Destroy;
    begin
      ADOCmd.Free;
      inherited;
    end;procedure TTest.Execute;
    begin
      ADOCmd.CommandText:='Delete from table1';
      ADOCmd.Execute;
    end;end.
     
      

  2.   

    线程中用ADO,建议最好每个线程都有自己的连接,另外要CoInitialize进行COM的初始化。