• 使用mysqlhelper可以连接mysql


    已经验证OK通过。

    参考地址:

    https://www.oschina.net/code/snippet_579976_48967



    https://files.cnblogs.com/files/mobilecard/MySQLHelper.rar


      这是一个操作MySQL的类,该类必须和libmysql.dll,dbxmys.dll两个文件一起使用.
      安装:
          将dll拷贝到C:WindowsSystem32下和项目目录下,发行的时候放到exe目录下即可.
      使用:
        //使用insert,update,delete语句时请使用:TMySQLHelper.ExecSQL();返回受影响行数Integer;
        //使用select语句时请使用TMySQLHelper.Query();返回数据集TSQLQuery;
      测试:
          WIN7 SP1 X86 , MySQL 5.5.51 , Delphi XE7 测试通过.

    {*
     *                         MySQL Helper v1.0
     *                            2015.6.19
     * 说明:
     *     这是一个操作MySQL的类,该类必须和libmysql.dll,dbxmys.dll两个文件一起使用.
     * 安装:
     *     将dll拷贝到C:WindowsSystem32下和项目目录下,发行的时候放到exe目录下即可.
     * 使用:
     *    //使用insert,update,delete语句时请使用:TMySQLHelper.ExecSQL();返回受影响行数Integer;
     *    //使用select语句时请使用TMySQLHelper.Query();返回数据集TSQLQuery;
     * 测试:
     *     WIN7 SP1 X86 , MySQL 5.6.51 , Delphi XE7 测试通过.
     * ==========================================
     * var
     *   MySQLHelper : TMySQLHelper;
     * begin
     *   MySQLHelper :=  TMySQLHelper.Create;
     *   MySQLHelper.User_name := 'root';
     *   MySQLHelper.Password  := 'root';
     *   MySQLHelper.Database  := 'Test';
     *   ShowMessage('影响行数:'+IntToStr(MySQLHelper.ExecSQL('INSERT INTO test(name)values(''FangJun'')')));
     *   MySQLHelper.Free;
     * end;
     * ==========================================
     * var
     *   MySQLHelper : TMySQLHelper;
     *   SQLQuery : TSQLQuery;
     * begin
     *   MySQLHelper :=  TMySQLHelper.Create;
     *   MySQLHelper.User_name := 'root';
     *   MySQLHelper.Password  := 'root';
     *   MySQLHelper.Database  := 'Test';
     *   SQLQuery := TSQLQuery.Create(nil);
     *   SQLQuery := MySQLHelper.Query('select * from test');
     *   while not SQLQuery.Eof do
     *     begin
     *       ShowMessage('姓名:'+VarToStr(SQLQuery.FieldValues['name']);
     *       SQLQuery.Next;
     *     end;
     *   MySQLHelper.MySQLClose;
     *   MySQLHelper.Free;
     * end;
     * ==========================================
    }
    unit MySQLHelper;
    
    interface
    
    uses
       SysUtils,StdCtrls,Classes,Variants,DB,SqlExpr,DBXMySQL;
    
    type
      TMySQLHelper = class(TObject)
      private
        _PORT          : Integer;
        _HOST          : string;
        _DATABASE      : string;
        _USER_NAME     : string;
        _PASSWORD      : string;
        _SERVERCHARSET : string;
        _SQLQuery      : TSQLQuery;
        _SQLConnection : TSQLConnection;
    
        procedure Set_PORT(const Value: Integer);
        procedure Set_HOST(const Value: string);
        procedure Set_DATABASE (const Value: string);
        procedure Set_USER_NAME(const Value: string);
        procedure Set_PASSWORD (const Value: string);
        procedure Set_SERVERCHARSET(const Value: string);
        function  MySQLConnection:TSQLConnection;
    
      public
        constructor Create; overload;
        property Post:Integer write Set_PORT;
        property Host:string write Set_HOST;
        property Database:string write Set_DATABASE;
        property User_name:string write Set_USER_NAME;
        property Password:string write Set_PASSWORD;
        property ServerCharSet:string write Set_SERVERCHARSET;
    
        function ExecSQL(const SQL:string):Integer;
        function Query(const SQL:string):TSQLQuery;
        procedure MySQLClose;
      end;
    
    implementation
    
      //初始化
      constructor TMySQLHelper.Create;
      begin
        _HOST := '192.168.1.222';
        _PORT := 3306;
        _SERVERCHARSET := 'utf8';
      end;
    
      //执行 SQL 语句 INSERT , UPDATE , DELETE  返回影响行数
      function TMySQLHelper.ExecSQL(const SQL:string):Integer;
      begin
        if not Assigned(_SQLQuery) then
          _SQLQuery := TSQLQuery.Create(nil);
        with _SQLQuery do
        begin
          Close;
          SQL.Clear;
          SQLConnection := MySQLConnection;
        end;
        try
          _SQLQuery.SQL.Add(SQL);
          result := _SQLQuery.ExecSQL;
        except on E: Exception do
          raise Exception.Create('SQL语句执行失败 :'+E.Message);
        end;
        MySQLClose;
      end;
    
      //执行 SQL 语句 Select 返回 数据集
      function TMySQLHelper.Query(const SQL:string):TSQLQuery;
      begin
        if not Assigned(_SQLQuery) then
           _SQLQuery := TSQLQuery.Create(nil);
        with _SQLQuery do
        begin
          Close;
          SQL.Clear;
          SQLConnection := MySQLConnection;
        end;
        try
          _SQLQuery.SQL.Add(SQL);
          _SQLQuery.Open;
          _SQLQuery.Active := true;
          result := _SQLQuery;
        except on E: Exception do
          raise Exception.Create('SQL语句查询失败 :'+E.Message);
        end;
      end;
    
      //关闭连接
      procedure TMySQLHelper.MySQLClose;
      begin
        _SQLQuery.Close;
        _SQLConnection.Close;
      end;
    
      //连接MySQL 返回 TSQLConnection
      function TMySQLHelper.MySQLConnection:TSQLConnection;
      begin
        if not Assigned(_SQLConnection) then
           _SQLConnection := TSQLConnection.Create(nil);
        with _SQLConnection do
          begin
            Close;
            GetDriverFunc := 'getSQLDriverMYSQL';
            LibraryName := 'dbxmys.dll';
            VendorLib := 'LIBMYSQL.dll';
            DriverName:= 'MySQL';
            Params.Values['drivername']:= 'MySQL';
            Params.Values['port']      := IntToStr(_PORT);
            Params.Values['hostname']  := _HOST;
            Params.Values['database']  := _DATABASE;
            Params.Values['user_name'] := _USER_NAME;
            Params.Values['password']  := _PASSWORD;
            Params.Values['ServerCharSet'] := _SERVERCHARSET;
          end;
        try
          _SQLConnection.Open;
          _SQLConnection.Connected := true;
          result := _SQLConnection;
        except on E: Exception do
          raise Exception.Create('数据库连接错误:'+E.Message);
        end;
      end;
    
    
      procedure TMySQLHelper.Set_PORT(const Value: Integer);
      begin
        if Value<>0 then
           _PORT := Value
      end;
    
      procedure TMySQLHelper.Set_HOST (const Value: string);
      begin
        if Value<>'' then
           _HOST := Value
      end;
    
      procedure TMySQLHelper.Set_DATABASE (const Value: string);
      begin
        _DATABASE := Value
      end;
    
      procedure TMySQLHelper.Set_USER_NAME (const Value: string);
      begin
        _USER_NAME := Value;
      end;
    
      procedure TMySQLHelper.Set_PASSWORD (const Value: string);
      begin
        _PASSWORD := Value;
      end;
    
      procedure TMySQLHelper.Set_SERVERCHARSET (const Value: string);
       begin
        if Value<>'' then
           _SERVERCHARSET := Value
      end;
    
    end.
  • 相关阅读:
    vue 对css样式进行修改
    vue之绑定数据+data、methods、computed、watch的基础用法
    vue安装 devtools失败的临时解决办法
    解决VMware Workstation 与 Device/Credential Guard 不兼容
    后渗透之meterpreter常用命令
    2020-7- 27
    PIL模块调整图片大小
    maven(一) maven到底是个啥玩意~
    noi前第十二场 题解
    noi前第十一场 题解
  • 原文地址:https://www.cnblogs.com/mobilecard/p/9196670.html
Copyright © 2020-2023  润新知