250 lines
6.7 KiB
ObjectPascal
250 lines
6.7 KiB
ObjectPascal
unit main;
|
|
|
|
interface
|
|
|
|
uses
|
|
{$IFNDEF VER130BELOW}
|
|
Types,
|
|
{$ENDIF}
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, DB, ZAbstractRODataset, ZAbstractDataset, ZDataset, ZConnection,
|
|
StdCtrls, ExtCtrls, Buttons, ComCtrls, Grids, DBGrids, Mask, DBCtrls,
|
|
ExtDlgs, ZSqlMetadata, ZSqlMonitor, ZDbcLogging;
|
|
|
|
type
|
|
TMainForm = class(TForm)
|
|
ZConnection: TZConnection;
|
|
ZPeople: TZQuery;
|
|
Panel1: TPanel;
|
|
Label1: TLabel;
|
|
ZProtocol: TComboBox;
|
|
Label2: TLabel;
|
|
ZPassword: TEdit;
|
|
Label3: TLabel;
|
|
ZDatabase: TEdit;
|
|
Label4: TLabel;
|
|
SpeedButton1: TSpeedButton;
|
|
PageControl1: TPageControl;
|
|
SpeedButton2: TSpeedButton;
|
|
TabSheet1: TTabSheet;
|
|
DBGrid: TDBGrid;
|
|
DSPeople: TDataSource;
|
|
DBNavigator1: TDBNavigator;
|
|
DBId: TDBEdit;
|
|
ZPeoplep_id: TSmallintField;
|
|
ZPeoplep_name: TStringField;
|
|
ZPeoplep_begin_work: TTimeField;
|
|
ZPeoplep_end_work: TTimeField;
|
|
ZPeoplep_picture: TBlobField;
|
|
ZPeoplep_resume: TMemoField;
|
|
ZPeoplep_redundant: TSmallintField;
|
|
DBName: TDBEdit;
|
|
DBBeginWorkTime: TDBEdit;
|
|
DBResume: TDBMemo;
|
|
DBPicture: TDBImage;
|
|
Label5: TLabel;
|
|
Label6: TLabel;
|
|
Label7: TLabel;
|
|
Label8: TLabel;
|
|
DBEndWorkTime: TDBEdit;
|
|
Label9: TLabel;
|
|
Label10: TLabel;
|
|
LoadImageBtn: TButton;
|
|
LoadResumeBtn: TButton;
|
|
ZDepartment: TZReadOnlyQuery;
|
|
DSDepartment: TDataSource;
|
|
DBDepartment: TDBLookupComboBox;
|
|
Label11: TLabel;
|
|
ZPeoplep_dep_id: TSmallintField;
|
|
ZHost: TEdit;
|
|
Label12: TLabel;
|
|
Label13: TLabel;
|
|
ZUername: TEdit;
|
|
ZPeopledeprtment: TStringField;
|
|
TabSheet2: TTabSheet;
|
|
ZCargo: TZQuery;
|
|
DSCargo: TDataSource;
|
|
DBGrid1: TDBGrid;
|
|
DBNavigator2: TDBNavigator;
|
|
Label14: TLabel;
|
|
ZPort: TEdit;
|
|
SpeedButton3: TSpeedButton;
|
|
TabSheet3: TTabSheet;
|
|
ZSQLMetadata: TZSQLMetadata;
|
|
DSSQLMetadata: TDataSource;
|
|
Panel2: TPanel;
|
|
DBGrid2: TDBGrid;
|
|
ZDBInfoType: TComboBox;
|
|
ZSQLMonitor: TZSQLMonitor;
|
|
TabSheet4: TTabSheet;
|
|
ZLogList: TMemo;
|
|
procedure SpeedButton1Click(Sender: TObject);
|
|
procedure SpeedButton2Click(Sender: TObject);
|
|
procedure LoadResumeBtnClick(Sender: TObject);
|
|
procedure LoadImageBtnClick(Sender: TObject);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure SpeedButton3Click(Sender: TObject);
|
|
procedure ZDBInfoTypeChange(Sender: TObject);
|
|
procedure ZSQLMonitorTrace(Sender: TObject; Event: TZLoggingEvent;
|
|
var LogTrace: Boolean);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
MainForm: TMainForm;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses ZClasses, ZDbcIntfs, ZDbcDBLib, ZCompatibility;
|
|
|
|
procedure TMainForm.SpeedButton1Click(Sender: TObject);
|
|
var
|
|
ODialog: TOpenDialog;
|
|
begin
|
|
ODialog := TOpenDialog.Create(self);
|
|
try
|
|
ODialog.Filter := 'Firebird Database|*.fdb|Interbase Database|*.gdb';
|
|
if ODialog.Execute then
|
|
begin
|
|
ZDatabase.Text := ODialog.FileName;
|
|
if ZConnection.Connected then
|
|
ZConnection.Disconnect;
|
|
end;
|
|
finally
|
|
ODialog.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TMainForm.SpeedButton2Click(Sender: TObject);
|
|
begin
|
|
with ZConnection do
|
|
begin
|
|
User := ZUername.Text;
|
|
Password := ZPassword.Text;
|
|
Protocol := ZProtocol.Text;
|
|
HostName := ZHost.Text;
|
|
if ZPort.Text <> '(default)' then
|
|
Port := StrToInt(ZPort.Text);
|
|
Database := ZDatabase.Text;
|
|
|
|
Connect;
|
|
ZCargo.Active := True;
|
|
ZDepartment.Active := True;
|
|
ZPeople.Active := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TMainForm.LoadResumeBtnClick(Sender: TObject);
|
|
var
|
|
ODialog: TOpenDialog;
|
|
begin
|
|
ODialog := TOpenDialog.Create(self);
|
|
try
|
|
ODialog.Filter := 'Text documents|*.txt';
|
|
if ODialog.Execute then
|
|
DBResume.Lines.LoadFromFile(ODialog.FileName);
|
|
finally
|
|
ODialog.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TMainForm.LoadImageBtnClick(Sender: TObject);
|
|
var
|
|
ODialog: TOpenPictureDialog;
|
|
begin
|
|
ODialog := TOpenPictureDialog.Create(self);
|
|
try
|
|
ODialog.Filter := 'Images|*.bmp';
|
|
if ODialog.Execute then
|
|
DBPicture.Picture.LoadFromFile(ODialog.FileName);
|
|
finally
|
|
ODialog.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TMainForm.FormShow(Sender: TObject);
|
|
var
|
|
I, J: Integer;
|
|
Drivers: IZCollection;
|
|
Protocols: TStringDynArray;
|
|
begin
|
|
ZProtocol.Clear;
|
|
Drivers := DriverManager.GetDrivers;
|
|
for I := 0 to Drivers.Count - 1 do
|
|
begin
|
|
Protocols := (Drivers.Items[I] as IZDriver).GetSupportedProtocols;
|
|
for J := 0 to High(Protocols) do
|
|
ZProtocol.Items.Add(Protocols[J]);
|
|
end;
|
|
ZProtocol.Sorted := True;
|
|
end;
|
|
|
|
procedure TMainForm.SpeedButton3Click(Sender: TObject);
|
|
begin
|
|
ZConnection.Disconnect;
|
|
ZLogList.Lines.Clear;
|
|
end;
|
|
|
|
procedure TMainForm.ZDBInfoTypeChange(Sender: TObject);
|
|
var
|
|
I: integer;
|
|
begin
|
|
ZSQLMetadata.Close;
|
|
if 'Procedures' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdProcedures;
|
|
if 'ProcedureColumns' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdProcedureColumns;
|
|
if 'Tables' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdTables;
|
|
if 'Schemas' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdSchemas;
|
|
if 'Catalogs' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdCatalogs;
|
|
if 'TableTypes' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdTableTypes;
|
|
if 'Columns' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdColumns;
|
|
if 'ColumnPrivileges' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdColumnPrivileges;
|
|
if 'TablePrivileges' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdTablePrivileges;
|
|
if 'BestRowIdentifier' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdBestRowIdentifier;
|
|
if 'VersionColumns' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdVersionColumns;
|
|
if 'PrimaryKeys' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdPrimaryKeys;
|
|
if 'ImportedKeys' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdImportedKeys;
|
|
if 'ExportedKeys' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdExportedKeys;
|
|
if 'CrossReference' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdCrossReference;
|
|
if 'TypeInfo' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdTypeInfo;
|
|
if 'IndexInfo' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdIndexInfo;
|
|
if 'UserDefinedTypes' = ZDBInfoType.Text then
|
|
ZSQLMetadata.MetadataType := mdUserDefinedTypes;
|
|
if ZConnection.Connected then
|
|
ZSQLMetadata.Open;
|
|
|
|
for I := 0 to DBGrid2.Columns.Count - 1 do
|
|
if DBGrid2.Columns[I].Width > 150 then
|
|
DBGrid2.Columns[I].Width := 150;
|
|
end;
|
|
|
|
procedure TMainForm.ZSQLMonitorTrace(Sender: TObject;
|
|
Event: TZLoggingEvent; var LogTrace: Boolean);
|
|
begin
|
|
ZLogList.Lines.Add(Event.AsString);
|
|
ZLogList.Lines.Add('');
|
|
end;
|
|
|
|
end.
|