⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 data.pas

📁 Crlab公司用来连接MySQL数据库的控件
💻 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 + -