在线程中创建adoconnetion及adoquery报错
在线程中创建ADO时,在创建时报错数据类型不兼容:Sendth:=SendThread.Create(true);这里创建线程时报错“incompatible types:'Tadoconnection' and 'boolean'”
原码如下:
//定义一个发送线程
type
SendThread=Class(TThread)
private
FAdoConnection:TADOConnection;
FAdoquery:TADOQuery;
FSql:String;
protected
procedure Execute; override;
procedure SendPro;
public
constructor create(AdoConnection:TADOConnection;AdoQuery:TADOQuery;Sql:string);
end;
implementation
{$R *.dfm}
constructor SendThread.create(AdoConnection:TADOConnection;AdoQuery:TADOQuery;Sql:string);
begin
inherited create(False);
FreeOnTerminate:=True;
FAdoConnection:=AdoConnection;
FAdoquery:=AdoQuery;
FSql:=Sql;
end;
procedure TMainFrm.FormShow(Sender: TObject);
var
SendTh:SendThread;
begin
Sendth:=SendThread.Create(true);这里创建线程时报错“incompatible types:'Tadoconnection' and 'boolean'”
Sendth.Resume;
end;
procedure SendThread.Execute;
begin
while not terminated do
begin
EnterCriticalSection(CS); //进入临界区
synchronize(SendPro);
Application.ProcessMessages;
end;
LeaveCriticalSection(CS); //离开临界区
end;
[解决办法]
你定义的构造函数是SendThread.create(AdoConnection:TADOConnection;AdoQuery:TADOQuery;Sql:string);
你看看里面是什么参数,你再看那看你传入的是什么 True,这能匹配吗
[解决办法]
constructor create(AdoConnection:TADOConnection;AdoQuery:TADOQuery;Sql:string); overload;