data.pas
来自「Crlab公司用来连接MySQL数据库的控件」· PAS 代码 · 共 98 行
PAS
98 行
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 + =
减小字号Ctrl + -
显示快捷键?