160 lines
3.1 KiB
ObjectPascal

unit Main;
interface
uses
{$IFDEF LINUX}
Libc, QDBCtrls, QComCtrls, QStdCtrls, QExtCtrls, QControls, QGrids, QDBGrids,
QForms,
{$ELSE}
Windows, DBCtrls, ComCtrls, StdCtrls, ExtCtrls, Controls, Grids, DBGrids,
Forms,
{$ENDIF}
IniFiles, SysUtils, Classes, DB,
ZConnection, ZAbstractRODataset, ZAbstractDataset, ZDataset;
type
TfmMain = class(TForm)
DBGrid: TDBGrid;
DataSource: TDataSource;
ToolBar: TPanel;
btOpen: TButton;
btClose: TButton;
meSQL: TMemo;
StatusBar: TStatusBar;
Panel1: TPanel;
DBNavigator1: TDBNavigator;
btApplyUpdates: TButton;
btCancelUpdates: TButton;
btExecute: TButton;
EmbeddedConnection: TZConnection;
ClientDataSet: TZQuery;
procedure btOpenClick(Sender: TObject);
procedure btCloseClick(Sender: TObject);
procedure btExecuteClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure meSQLExit(Sender: TObject);
procedure btApplyUpdatesClick(Sender: TObject);
procedure btCancelUpdatesClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure ShowState;
public
{ Public declarations }
end;
var
fmMain: TfmMain;
implementation
{$R *.dfm}
procedure TfmMain.ShowState;
var
St:string;
procedure AddSt(S:string);
begin
if St <> '' then
St := St + ', ';
St := St + S;
end;
begin
St := '';
if ClientDataSet.Active then
AddSt('Active')
else
AddSt('Inactive');
StatusBar.Panels[0].Text := St;
end;
procedure TfmMain.meSQLExit(Sender: TObject);
begin
if Trim(ClientDataSet.SQL.Text) <> Trim(meSQL.Lines.Text) then
ClientDataSet.SQL.text := meSQL.Lines.Text;
ShowState;
end;
procedure TfmMain.btOpenClick(Sender: TObject);
procedure ModifyMyIniFile;
var
IniFile: TIniFile;
FileName: string;
FilePath: string;
begin
{$IFDEF LINUX}
FileName := '/usr/local/var/my.cnf';
{$ELSE}
FileName := '.\my.ini';
{$ENDIF}
IniFile := TIniFile.Create(FileName);
try
FileName := ExtractFileName(ParamStr(0));
FilePath := StringReplace(ExtractFilePath(ParamStr(0)), '\', '/', [rfReplaceAll]);
CreateDir(FilePath + 'data');
CreateDir(FilePath + 'data/Test');
IniFile.WriteString(FileName, 'datadir', FilePath + 'data');
IniFile.WriteString(FileName, 'basedir', FilePath);
finally
IniFile.Free;
end;
end;
begin
try
//ModifyMyIniFile;
meSQLExit(nil);
ClientDataSet.Open;
finally
ShowState;
end;
end;
procedure TfmMain.btCloseClick(Sender: TObject);
begin
ClientDataSet.Close;
ShowState;
end;
procedure TfmMain.btExecuteClick(Sender: TObject);
begin
try
ClientDataSet.ExecSQL;
finally
ShowState;
end;
end;
procedure TfmMain.FormShow(Sender: TObject);
begin
ClientDataSet.SQL.Text := meSQL.Lines.Text;
ShowState;
end;
procedure TfmMain.btApplyUpdatesClick(Sender: TObject);
begin
ClientDataSet.ApplyUpdates;
end;
procedure TfmMain.btCancelUpdatesClick(Sender: TObject);
begin
ClientDataSet.CancelUpdates;
end;
procedure TfmMain.FormCreate(Sender: TObject);
begin
EmbeddedConnection.Connected := true;
end;
end.