?? uquerydatamodel.pas
字號:
unit UQueryDataModel;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, UPrimaryDataModel, Provider,
DB, DBClient,
MyTools, MyModel, UAdapterDataModel, ADODB;
type
TQueryDataModel = class(TAdapterDataModel, IQuery)
protected
procedure PrepareQuery(Parameters: MyTools.IQueryParameters); virtual; abstract;
public
{---------------------------------------- IQuery ----------------------------------------}
function Query(Parameters: MyTools.IParameters): Integer; virtual;
public
constructor Create(Owner: TComponent); override;
procedure Refresh(Parameters: IParameters); override;
end;
implementation
uses
MyException;
{$R *.dfm}
constructor TQueryDataModel.Create(Owner: TComponent);
begin
inherited;
AutoOpenDataSet := False;
end;
function TQueryDataModel.Query(Parameters: IParameters): Integer;
var
P: IQueryParameters;
begin
DataSet.Close;
DataSet.DisableControls;
try
try
P := IQueryParameters(Parameters);
except
on E: Exception do
raise EQueryParameters.Create(Self.ClassName, E.Message);
end;
ClientDataSet.Close;
DataSet.Close;
PrepareQuery(P);
try
DataSet.Open;
ClientDataSet.Open;
except
on E: Exception do
raise EOpenDataSetException.Create(Self.ClassName, E.Message);
end;
finally
DataSet.EnableControls;
P := nil;
Result := 0;
end;
end;
procedure TQueryDataModel.Refresh(Parameters: IParameters);
begin
Query(Parameters)
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -