Unit querythread
Interface
Uses
Classes, Messages, AdoDB, DB, Sysutils, Dialogs, ActiveX;
Type
Tmythread = Class (TTHREAD)
Private
FQuery: tadoquery; // query
Fconnection: tadoconnection; // connection
FDataSource: TDataSource; Data Perception Component related to Query Components}
Procedure ConnectDataSource; {Connection Data Query Components and Data Perceived Method}
protected
Procedure execute; override;
public
Constructor Create (SUSPENDED: Boolean; Query: TadoQuery; DS: TDataSource);
Thread constructor}
DESTRUCTOR DESTROY; OVERRIDE;
END;
IMPLEMENTATION
Procedure Tmythread.ConnectDataSource; {Connection Data Query Components and Data Perceived Methods
Begin
FDataSource.DataSet: = FQuery;
END;
Constructor Tmythread.create (SUSPENDED: Boolean; Query: TadoQuery; DS: tdataser);
Begin
Coinitialize (nil); // this is
Needle in thread
Try
Fconnection: = tadoconnection.create (nil);
FQUERY: = query;
FDataSource: = DS;
FQuery.Connection: = fConnection;
With fconnection do
Begin
LoginPrompt: = false;
KeepConnection: = TRUE;
Connectionstring: = 'provider = msdasql.1; persist security info = false; data source = honesty';
END;
Inherited CREATE (SUSPENDED);
Except
ON E: Exception DO
Begin
SHOWMESSAGE ('creation
Error when thread! Error is: ' E.MESSAGE);
END;
END;
END;
DEStructor Tmythread.Destroy;
Begin
Fconnection.Free; // Release
Couninitialize;
Inherited destroy;
END;
Procedure Tmythread.execute;
Begin
Try
FreeOnterminate: = true;
FQuery.Open; {Open Query}
Synchronize (connectDataSource); {
Thread synchronization}
Except
ShowMessage ('
Thread exception! '); {
Thread abnormal}
END;
END;
End.