83 lines
1.9 KiB
ObjectPascal
83 lines
1.9 KiB
ObjectPascal
unit SynDBExplorerServer;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, StdCtrls, ExtCtrls, SynCommons, SynDB, SynDBRemote;
|
|
|
|
type
|
|
THTTPServerForm = class(TForm)
|
|
lbledtPort: TLabeledEdit;
|
|
lbledtDatabase: TLabeledEdit;
|
|
lbledtUser: TLabeledEdit;
|
|
lbledtPassword: TLabeledEdit;
|
|
btnConnect: TButton;
|
|
btnDisconnect: TButton;
|
|
procedure lbledtPortKeyPress(Sender: TObject; var Key: Char);
|
|
procedure lbledtDatabaseKeyPress(Sender: TObject; var Key: Char);
|
|
procedure btnConnectClick(Sender: TObject);
|
|
procedure FormDestroy(Sender: TObject);
|
|
procedure btnDisconnectClick(Sender: TObject);
|
|
private
|
|
public
|
|
Props: TSQLDBConnectionProperties;
|
|
Server: TSQLDBServerHttpApi;
|
|
end;
|
|
|
|
var
|
|
HTTPServerForm: THTTPServerForm;
|
|
|
|
implementation
|
|
|
|
uses
|
|
mORMotUILogin; // for ShowMessage()
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure THTTPServerForm.lbledtPortKeyPress(Sender: TObject;
|
|
var Key: Char);
|
|
begin
|
|
if not (AnsiChar(Key) in ['0'..'9']) then
|
|
Key := #0
|
|
end;
|
|
|
|
procedure THTTPServerForm.lbledtDatabaseKeyPress(Sender: TObject;
|
|
var Key: Char);
|
|
begin
|
|
if not (AnsiChar(Key) in ['A'..'Z','a'..'z','_']) then
|
|
Key := #0
|
|
end;
|
|
|
|
procedure THTTPServerForm.btnConnectClick(Sender: TObject);
|
|
begin
|
|
if (Server<>nil) or (Props=nil) then
|
|
exit;
|
|
try
|
|
Server := TSQLDBServerHttpApi.Create(Props,StringToUTF8(lbledtDatabase.Text),
|
|
StringToUTF8(lbledtPort.Text),StringToUTF8(lbledtUser.Text),
|
|
StringToUTF8(lbledtPassword.Text));
|
|
except
|
|
on E: Exception do
|
|
ShowMessage(E.ClassName,E.Message,true);
|
|
end;
|
|
btnConnect.Enabled := false;
|
|
btnDisconnect.Enabled := true;
|
|
end;
|
|
|
|
procedure THTTPServerForm.FormDestroy(Sender: TObject);
|
|
begin
|
|
FreeAndNil(Server);
|
|
end;
|
|
|
|
procedure THTTPServerForm.btnDisconnectClick(Sender: TObject);
|
|
begin
|
|
if Server<>nil then
|
|
FreeAndNil(Server);
|
|
Props := nil;
|
|
btnDisconnect.Enabled := false;
|
|
btnConnect.Enabled := true;
|
|
end;
|
|
|
|
end.
|