📄 main.~pas
字号:
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBXpress, DB, SqlExpr, StdCtrls;
type
TForm1 = class(TForm)
SQLConnection1: TSQLConnection;
btnConnect: TButton;
cbxLoginPrompt: TCheckBox;
lblStatus: TLabel;
btnDisconnect: TButton;
memStatus: TMemo;
procedure btnConnectClick(Sender: TObject);
procedure SQLConnection1Login(Database: TSQLConnection;
LoginParams: TStrings);
procedure SQLConnection1BeforeConnect(Sender: TObject);
procedure SQLConnection1AfterConnect(Sender: TObject);
procedure cbxLoginPromptClick(Sender: TObject);
procedure btnDisconnectClick(Sender: TObject);
procedure SQLConnection1AfterDisconnect(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnConnectClick(Sender: TObject);
begin
SQLConnection1.Connected := True;
end;
procedure TForm1.SQLConnection1Login(Database: TSQLConnection;
LoginParams: TStrings);
begin
//LoginPrompt为True时使用该事件处理程序
LoginParams.Values['User_Name'] := 'sysdba';
LoginParams.Values['Password'] := 'masterkey';
//更新状态
memStatus.Lines.Add('在OnLongin事件中进行身份验证...');
end;
procedure TForm1.SQLConnection1BeforeConnect(Sender: TObject);
begin
//要建立连接时触发该事件
with Sender as TSQLConnection do
begin
//为了和OnLogin事件处理区分,这里在LoginPrompt为Fasle时才登录
if LoginPrompt = False then
begin
Params.Values['User_Name'] := 'SYSDBA';
Params.Values['Password'] := 'masterkey';
//也可以采取加密密码的方式,其中Decrypt是自己定义的解密函数
//Params.Values['Password'] := Decrypt(Params.Values['Password']);
//更新状态
memStatus.Lines.Add('在BeforeConnect事件中进行身份验证...');
end;
end;
end;
procedure TForm1.SQLConnection1AfterConnect(Sender: TObject);
begin
if SQLConnection1.Connected then
memStatus.Lines.Add('已经登录数据库,后台身份验证成功!');
end;
procedure TForm1.cbxLoginPromptClick(Sender: TObject);
begin
//设置LoginPrompt属性
SQLConnection1.LoginPrompt := cbxLoginPrompt.Checked;
end;
procedure TForm1.btnDisconnectClick(Sender: TObject);
begin
SQLConnection1.Connected := False ;
memStatus.Lines.Add('断开数据库连接...');
end;
procedure TForm1.SQLConnection1AfterDisconnect(Sender: TObject);
begin
if not SQLConnection1.Connected then
memStatus.Lines.Add('已经从数据库断开');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -