📄 data.pas
字号:
unit Data;
interface
uses
Classes, SysUtils,
{$IFNDEF LINUX}
Windows, Menus, ImgList, StdCtrls, ComCtrls, Buttons, ExtCtrls, Graphics,
Controls, Forms, Dialogs,
{$ELSE}
QMenus, QImgList, QStdCtrls, QComCtrls, QButtons, QExtCtrls, QGraphics,
QControls, QForms,
{$ENDIF}
DB, MemData, DBAccess,
MyAccess, MemDS, MyDacVcl, DAScript, MyScript;
type
TDM = class(TDataModule)
Connection: TMyConnection;
quDetail: TMyQuery;
quMaster: TMyQuery;
dsMaster: TDataSource;
dsDetail: TDataSource;
scCreate: TMyScript;
scDrop: TMyScript;
private
public
IgnoreScriptErrors: boolean;
procedure KillSession;
function InTransaction: boolean;
procedure StartTransaction;
procedure RollbackTransaction;
procedure CommitTransaction;
end;
var
DM: TDM;
implementation
{$IFDEF CLR}
{$R *.nfm}
{$ENDIF}
{$IFDEF WIN32}
{$R *.dfm}
{$ENDIF}
{$IFDEF LINUX}
{$R *.xfm}
{$ENDIF}
uses
Main;
{ TDM }
procedure TDM.KillSession;
var
KillConnection: TMyConnection;
begin
KillConnection := TMyConnection.Create(nil);
try
KillConnection.Server := Connection.Server;
KillConnection.Username := Connection.Username;
KillConnection.Password := Connection.Password;
KillConnection.Database := Connection.Database;
KillConnection.Port := Connection.Port;
KillConnection.LoginPrompt := False;
KillConnection.ExecSQL('KILL ' + IntToStr(Connection.ThreadId), []);
Sleep(500); // wait until session is killed
finally
KillConnection.Free;
end;
end;
function TDM.InTransaction: boolean;
begin
Result := Connection.InTransaction;
end;
procedure TDM.StartTransaction;
begin
Connection.StartTransaction;
end;
procedure TDM.CommitTransaction;
begin
Connection.Commit;
end;
procedure TDM.RollbackTransaction;
begin
Connection.Rollback;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -