git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.SDAC@3 6f543ec7-021b-7e4c-98c9-62eafc7fb9a8
172 lines
4.2 KiB
ObjectPascal
172 lines
4.2 KiB
ObjectPascal
|
|
//////////////////////////////////////////////////
|
|
// Data Access Components
|
|
// Copyright © 1998-2005 Core Lab. All right reserved.
|
|
// Query Editor
|
|
//////////////////////////////////////////////////
|
|
|
|
{$IFNDEF CLR}
|
|
|
|
{$I Dac.inc}
|
|
|
|
unit DAQueryEditor;
|
|
{$ENDIF}
|
|
interface
|
|
uses
|
|
{$IFDEF MSWINDOWS}
|
|
Windows, Messages, Graphics, Controls, Forms, Dialogs,
|
|
ComCtrls, StdCtrls, ExtCtrls, Buttons,
|
|
{$ENDIF}
|
|
{$IFDEF LINUX}
|
|
Types, QGraphics, QControls, QForms, QDialogs, QStdCtrls,
|
|
QExtCtrls, QComCtrls, QButtons,
|
|
{$ENDIF}
|
|
SysUtils, DB, Classes,
|
|
DBAccess, MemUtils,
|
|
CRFrame, CREditor, CRTabEditor, DASQLFrame, DAParamsFrame, DAMacrosFrame, DASPCallFrame,
|
|
DASQLEditor, DAUpdateSQLFrame, DASQLGeneratorFrame;
|
|
|
|
type
|
|
TDAQueryEditorForm = class(TDASQLEditorForm)
|
|
shEditSQL: TTabSheet;
|
|
shGenerator: TTabSheet;
|
|
btnDataEditor: TBitBtn;
|
|
procedure btnDataEditorClick(Sender: TObject);
|
|
protected
|
|
FUpdateSQLFrame: TDAUpdateSQLFrame;
|
|
FSQLGeneratorFrame: TDASQLGeneratorFrame;
|
|
|
|
procedure DoInit; override;
|
|
procedure DoActivate; override;
|
|
procedure DoSave; override;
|
|
|
|
function GetQuery: TCustomDADataSet;
|
|
procedure SetQuery(Value: TCustomDADataSet);
|
|
function GetComponent: TComponent; override;
|
|
procedure SetComponent(Value: TComponent); override;
|
|
function GetFrameByInitProp: TCRFrame; override;
|
|
|
|
property Query: TCustomDADataSet read GetQuery write SetQuery;
|
|
|
|
public
|
|
property UpdateSQLFrame: TDAUpdateSQLFrame read FUpdateSQLFrame;
|
|
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
DADesignUtils, DADataEditor;
|
|
|
|
{$IFDEF IDE}
|
|
{$R *.dfm}
|
|
{$ENDIF}
|
|
{$IFDEF MSWINDOWS}
|
|
{$R DAQueryEditor.dfm}
|
|
{$ENDIF}
|
|
{$IFDEF LINUX}
|
|
{$R *.xfm}
|
|
{$ENDIF}
|
|
|
|
procedure TDAQueryEditorForm.DoInit;
|
|
begin
|
|
try
|
|
inherited;
|
|
finally
|
|
Assert(FUpdateSQLFrame <> nil);
|
|
Assert(FSQLGeneratorFrame <> nil);
|
|
FSPCallFrame.Mode := spQuery;
|
|
end;
|
|
end;
|
|
|
|
procedure TDAQueryEditorForm.DoActivate;
|
|
begin
|
|
inherited;
|
|
if PageControl.ActivePage = FUpdateSQLFrame.Page then
|
|
ActiveControl := FUpdateSQLFrame.ActiveControl;
|
|
end;
|
|
|
|
procedure TDAQueryEditorForm.DoSave;
|
|
var
|
|
OldActive: boolean;
|
|
OldDebug: boolean;
|
|
begin
|
|
OldActive := TCustomDADataSet(FComponent).Active;
|
|
OldDebug := TCustomDADataSet(FComponent).Debug;
|
|
try
|
|
// CR-M12021
|
|
TCustomDADataSet(FLocalComponent).MasterSource := TCustomDADataSet(FComponent).MasterSource;
|
|
TCustomDADataSet(FLocalComponent).MasterFields := TCustomDADataSet(FComponent).MasterFields;
|
|
TCustomDADataSet(FLocalComponent).DetailFields := TCustomDADataSet(FComponent).DetailFields;
|
|
|
|
inherited;
|
|
TCustomDADataSet(FComponent).Debug := False;
|
|
try
|
|
TCustomDADataSet(FComponent).Active := OldActive;
|
|
except
|
|
end;
|
|
finally
|
|
TCustomDADataSet(FComponent).Debug := OldDebug;
|
|
end;
|
|
end;
|
|
|
|
function TDAQueryEditorForm.GetQuery: TCustomDADataSet;
|
|
begin
|
|
Result := FComponent as TCustomDADataSet;
|
|
end;
|
|
|
|
procedure TDAQueryEditorForm.SetQuery(Value: TCustomDADataSet);
|
|
begin
|
|
FComponent := Value;
|
|
end;
|
|
|
|
function TDAQueryEditorForm.GetComponent: TComponent;
|
|
begin
|
|
Result := Query;
|
|
end;
|
|
|
|
procedure TDAQueryEditorForm.SetComponent(Value: TComponent);
|
|
begin
|
|
Query := Value as TCustomDADataSet;
|
|
end;
|
|
|
|
function TDAQueryEditorForm.GetFrameByInitProp: TCRFrame;
|
|
begin
|
|
if InitialProperty = 'SQLDelete' then begin
|
|
FUpdateSQLFrame.SetStatementType(stDelete);
|
|
Result := FUpdateSQLFrame;
|
|
end
|
|
else
|
|
if InitialProperty = 'SQLInsert' then begin
|
|
FUpdateSQLFrame.SetStatementType(stInsert);
|
|
Result := FUpdateSQLFrame;
|
|
end
|
|
else
|
|
if InitialProperty = 'SQLRefresh' then begin
|
|
FUpdateSQLFrame.SetStatementType(stRefresh);
|
|
Result := FUpdateSQLFrame;
|
|
end
|
|
else
|
|
if InitialProperty = 'SQLUpdate' then begin
|
|
FUpdateSQLFrame.SetStatementType(stUpdate);
|
|
Result := FUpdateSQLFrame;
|
|
end
|
|
else
|
|
Result := inherited GetFrameByInitProp;
|
|
end;
|
|
|
|
procedure TDAQueryEditorForm.btnDataEditorClick(Sender: TObject);
|
|
begin
|
|
SaveControlData;
|
|
CheckConnection(LocalComponent);
|
|
with TDADataEditorForm.Create(nil, FDADesignUtilsClass) do
|
|
try
|
|
Component := Self.LocalComponent;
|
|
ShowModal;
|
|
finally
|
|
Free;
|
|
end;
|
|
end;
|
|
|
|
end.
|