Componentes.Terceros.RemObj.../internal/5.0.23.613/1/Data Abstract for Delphi/Source/uDADatasetProvider.pas
david 2824855ea7 - Modificación del paquete RemObjects_Core_D10 para que sea un paquete de runtime/designtime (antes era designtime sólo)
- Recompilación en Delphi10 de todos los paquetes de RO para generar las DCU's en Lib\D10
- Recompilación en Delphi10 de todos los paquetes de DA para generar las DCU's en Lib\D10

git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@9 b6239004-a887-0f4b-9937-50029ccdca16
2007-09-10 14:06:19 +00:00

80 lines
2.5 KiB
ObjectPascal

unit uDADatasetProvider;
{----------------------------------------------------------------------------}
{ Data Abstract Library - Core Library }
{ }
{ compiler: Delphi 6 and up }
{ platform: Win32 }
{ }
{ (c)opyright RemObjects Software. all rights reserved. }
{ }
{ Using this code requires a valid license of the Data Abstract }
{ which can be obtained at http://www.remobjects.com. }
{----------------------------------------------------------------------------}
{$I DataAbstract.inc}
interface
uses
Classes, DB, Provider, uDADataTable;
type
{ TDADatasetProvider }
TDADatasetProvider = class(TDataSetProvider)
private
fDataTable: TDADataTable;
procedure SetDataTable(const Value: TDADataTable);
function GetDataset: TDataset;
protected
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
function InternalGetRecords(Count: Integer; out RecsOut: Integer;
Options: TGetRecordOptions; const CommandText: WideString;
var Params: OleVariant): OleVariant; override;
published
property Dataset: TDataset read GetDataset;
property DataTable: TDADataTable read fDataTable write SetDataTable;
end;
implementation
{ TDADatasetProvider }
function TDADatasetProvider.GetDataset: TDataset;
begin
result := NIL;
end;
function TDADatasetProvider.InternalGetRecords(Count: Integer;
out RecsOut: Integer; Options: TGetRecordOptions;
const CommandText: WideString; var Params: OleVariant): OleVariant;
begin
if not DataTable.Active then DataTable.Open;
result := inherited InternalGetRecords(Count, RecsOut, Options, CommandText, Params);
end;
procedure TDADatasetProvider.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited;
if (Operation=opRemove) then begin
if (aComponent=fDatatable) then fDataTable := NIL;
end;
end;
procedure TDADatasetProvider.SetDataTable(const Value: TDADataTable);
begin
fDataTable := Value;
if (fDataTable<>NIL) then begin
fDataTable.FreeNotification(Self);
inherited Dataset := fDataTable.Dataset;
end;
end;
end.