unit adoqueryDao;
interface
uses
SysUtils, Classes, DB, ADODB;
type
TadoqueryDao = class(TADOQuery)
private
FDaoStr:TStrings;
procedure SetDaoStr(const Value: TStrings);
{ Private declarations }
protected
{ Protected declarations }
procedure DoAfterOpen;override;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property DaoStr:TStrings read FDaoStr write SetDaoStr;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('ADO', [TadoqueryDao]);
end;
{ TadoqueryDao }
constructor TadoqueryDao.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FDaoStr:=TStringList.Create;
end;
destructor TadoqueryDao.Destroy;
begin
FreeAndNil(FDaoStr);
inherited Destroy;
end;
procedure TadoqueryDao.DoAfterOpen;
var i:Integer;
begin
inherited;
FDaoStr.Append('T'+ Self.Name + ' = class');
FDaoStr.Append('private');
for i:=0 to Self.FieldCount - 1 do
begin
FDaoStr.Append(' _'+Self.FieldDefs.Items[i].Name+':String;');
end;
FDaoStr.Append('public');
for i:=0 to Self.FieldCount - 1 do
begin
FDaoStr.Append(' property '+Self.FieldDefs.Items[i].Name+':String read _'+Self.FieldDefs.Items[i].Name +' write _'+Self.FieldDefs.Items[i].Name + ';');
end;
FDaoStr.Append('end;');
end;
procedure TadoqueryDao.SetDaoStr(const Value: TStrings);
begin
FDaoStr.Assign(Value);
end;
end.