Componentes.Terceros.SDAC/internal/4.10.0.10/1/Source/Design/DADumpEditor.pas
2007-10-05 14:48:18 +00:00

250 lines
5.5 KiB
ObjectPascal

//////////////////////////////////////////////////
// Data Access Components
// Copyright © 1998-2007 Core Lab. All right reserved.
// DADump Editor
//////////////////////////////////////////////////
{$IFNDEF CLR}
{$I Dac.inc}
unit DADumpEditor;
{$ENDIF}
interface
uses
{$IFDEF MSWINDOWS}
Windows, Messages, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, ExtCtrls, Buttons, DacVcl,
{$ENDIF}
{$IFDEF LINUX}
Types, QGraphics, QControls, QForms, QDialogs, QStdCtrls,
QExtCtrls, QComCtrls, QButtons, DacClx,
{$ENDIF}
{$IFDEF DBTOOLS}
DBToolsClient,
{$ENDIF}
SysUtils, Classes, CREditor, DBAccess, DADump, DADesignUtils, DADualListEditor;
type
TDADumpEditorForm = class(TCREditorForm)
ClientPanel: TPanel;
LeftPanel: TPanel;
meSQL: TMemo;
gbBackupOptions: TGroupBox;
cbGenerateHeader: TCheckBox;
btBackup: TBitBtn;
btRestore: TBitBtn;
btImport: TBitBtn;
btExport: TBitBtn;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
cbTableNames: TComboBox;
lbTableNames: TLabel;
procedure btBackupClick(Sender: TObject);
procedure btRestoreClick(Sender: TObject);
procedure meSQLExit(Sender: TObject);
procedure btImportClick(Sender: TObject);
procedure btExportClick(Sender: TObject);
procedure SaveClick(Sender: TObject);
procedure cbTableNamesChange(Sender: TObject);
procedure cbTableNamesDropDown(Sender: TObject);
protected
FDump, FLocalDump: TDADump;
procedure EditTableNames(Sender: TObject); virtual;
procedure DoInit; override;
procedure DoSave; override;
procedure DoFinish; override;
procedure GetButtons; virtual;
procedure SetButtons; virtual;
function GetComponent: TComponent; override;
procedure SetComponent(Value: TComponent); override;
function GetLocalComponent: TComponent; override;
public
property Dump: TDADump read FDump write FDump;
end;
implementation
uses
DAConsts, DADumpProgress;
{$IFDEF IDE}
{$R *.dfm}
{$ENDIF}
{$IFDEF MSWINDOWS}
{$R DADumpEditor.dfm}
{$ENDIF}
{$IFDEF LINUX}
{$R *.xfm}
{$ENDIF}
{ TDADumpEditorForm }
procedure TDADumpEditorForm.DoInit;
{$IFDEF USE_SYNEDIT}
var
WinControl: TWinControl;
{$ENDIF}
begin
inherited;
{$IFDEF USE_SYNEDIT}
{$IFDEF DBTOOLS}
if DADesignUtilsClass.DBToolsAvailable then
DBTools.ReplaceMemo(meSQL, DADesignUtilsClass, Component)
else begin
{$ENDIF}
WinControl := meSQL;
ReplaceMemo(WinControl, True);
meSQL := TMemo(WinControl);
{$IFDEF DBTOOLS}
end;
{$ENDIF}
{$ENDIF}
FLocalDump := TComponentClass(Dump.ClassType).Create(nil) as TDADump;
FLocalDump.Assign(Dump);
SetMemoText(meSQL, FLocalDump.SQL.Text);
cbGenerateHeader.Checked := FLocalDump.Options.GenerateHeader;
end;
procedure TDADumpEditorForm.DoSave;
begin
GetButtons;
Dump.Assign(FLocalDump);
end;
procedure TDADumpEditorForm.DoFinish;
begin
FLocalDump.Free;
end;
procedure TDADumpEditorForm.GetButtons;
begin
FLocalDump.Options.GenerateHeader := cbGenerateHeader.Checked;
end;
procedure TDADumpEditorForm.SetButtons;
begin
btRestore.Enabled := Length(Trim(GetMemoText(meSQL))) > 0;
end;
function TDADumpEditorForm.GetComponent: TComponent;
begin
Result := Dump;
end;
function TDADumpEditorForm.GetLocalComponent: TComponent;
begin
Result := FLocalDump;
end;
procedure TDADumpEditorForm.SetComponent(Value: TComponent);
begin
Dump := Value as TDADump;
end;
procedure TDADumpEditorForm.btBackupClick(Sender: TObject);
var
OldChangeCursor: boolean;
begin
GetButtons;
OldChangeCursor := ChangeCursor;
try
StartWait;
ChangeCursor := False;
with TDADumpProgressForm.Create(nil) do
try
if Dump.Owner <> nil then
Caption := Dump.Owner.Name + '.' + Dump.Name
else
Caption := Dump.Name;
DADump := FLocalDump;
Backup;
finally
Free;
end;
finally
SetMemoText(meSQL, FLocalDump.SQL.Text);
ChangeCursor := OldChangeCursor;
StopWait;
end;
Modified := True;
SetButtons;
end;
procedure TDADumpEditorForm.btRestoreClick(Sender: TObject);
begin
if MessageDlg(SAreYouSureRestore, mtConfirmation, [mbYes,mbNo], 0) = mrNo then
Exit;
with TDADumpProgressForm.Create(nil) do
try
if Dump.Owner <> nil then
Caption := Dump.Owner.Name + '.' + Dump.Name
else
Caption := Dump.Name;
DADump := FLocalDump;
Restore;
finally
Free;
end;
end;
procedure TDADumpEditorForm.meSQLExit(Sender: TObject);
begin
if TrimRight(FLocalDump.SQL.Text) = TrimRight(GetMemoText(meSQL)) then
Exit;
Modified := True;
FLocalDump.SQL.Text := GetMemoText(meSQL);
SetButtons;
end;
procedure TDADumpEditorForm.btImportClick(Sender: TObject);
begin
if OpenDialog.Execute then
LoadFromFile(meSQL, OpenDialog.FileName);
end;
procedure TDADumpEditorForm.btExportClick(Sender: TObject);
begin
if not SaveDialog.Execute then
Exit;
meSQLExit(nil);
SaveToFile(meSQL, SaveDialog.FileName);
end;
procedure TDADumpEditorForm.SaveClick(Sender: TObject);
begin
meSQLExit(nil);
inherited;
end;
procedure TDADumpEditorForm.cbTableNamesChange(Sender: TObject);
begin
FLocalDump.TableNames := cbTableNames.Text;
end;
procedure TDADumpEditorForm.cbTableNamesDropDown(Sender: TObject);
begin
EditTableNames(Sender);
end;
procedure TDADumpEditorForm.EditTableNames(Sender: TObject);
begin
//
end;
end.