注: 无需odbc配置
{*
* MySQL Helper v1.0
* 2015.6.19
* 说明:
* 这是一个操作MySQL的类,该类必须和libmysql.dll,dbxmys.dll两个文件一起使用.
* 安装:
* 将dll拷贝到C:\Windows\System32下和项目目录下,发行的时候放到exe目录下即可.
* 使用:
* //使用insert,update,delete语句时请使用:TMySQLHelper.ExecSQL();返回受影响行数Integer;
* //使用select语句时请使用TMySQLHelper.Query();返回数据集TSQLQuery;
* 测试:
* WIN7 SP1 X86 , MySQL 5.6.17 , Delphi XE 测试通过.
* ==========================================
* 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 := '127.0.0.1';
_PORT := ;
_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<> 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.

DELPHI XE MYSQL数据库操作类 MYSQLHELPER的更多相关文章

  1. php : mysql数据库操作类演示

    设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...

  2. php MySQL数据库操作类源代码

    php MySQL数据库操作类源代码: <?php class MySQL{ private $host; //服务器地址 private $name; //登录账号 private $pwd; ...

  3. 设计模式 - 单例模式mysql数据库操作类

    待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php ...

  4. MySQL数据库操作类(PHP实现,支持连贯操作)

    <?php /** * Author: suvan * CreateTime: 2018/2/27 * description: 数据库操作类(仅对接MySQL数据库,主要利用MySQLi函数) ...

  5. php pdo mysql数据库操作类

    <?php namespace iphp\core; use iphp\App; /** * 数据库操作基类 基于pdo * @author xuen * 支持链式操作,支持参数绑定 * 说明1 ...

  6. php 封装mysql 数据库操作类

    <?phpheader('content-type:text/html;charset=utf-8');//封装mysql   连接数据库php_mysql//封装mysql   连接数据库ph ...

  7. C# MySQL 数据库操作类

    using System; using System.Configuration; using System.Collections; using System.Data; using MySql.D ...

  8. php中用面向对象的思想编写mysql数据库操作类

    最近刚入门完mysql,正好学了一阵子php就想着如何把mysql的表信息用php打印页面上.现在就把代码贴出来,以便小伙伴们参考. 先是建立mysql连接: /*建立连接*/ class datab ...

  9. php 封装Mysql数据库操作类

    花了点时间写了个基于php5.3的Mysql类 $mysql = new Mysql('host','user','pass','db') bool Mysql::insert("表&quo ...

随机推荐

  1. gosched

    Go语言runtime.Gosched()函数浅析 这个函数的作用是让当前goroutine让出CPU,好让其它的goroutine获得执行的机会.同时,当前的goroutine也会在未来的某个时间点 ...

  2. 洛谷 P1120 小木棍 dfs+剪枝

    Problem Description [题目链接] https://www.luogu.com.cn/problem/P1120 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不 ...

  3. mysql 8.0.17 安装配置方法图文教程

    1.URL:https://www.jb51.net/article/167782.htm 2.装好之后需要使用add user中的用户名和密码登录(之前安装数据库时出现的) 使用navicat连接时 ...

  4. Linux系统性能10条命令

    概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. uptime dmesg | tail vmstat 1 mpstat -P ALL 1 pidstat 1 iostat - ...

  5. Codevs 2185【模板】最长公共上升子序列

    题目描述 Description 熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目.小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们要研究最长公共上升子序列了.小沐沐说,对于 ...

  6. Python中多层List展平为一层

    小书匠python 使用Python脚本的过程中,偶尔需要使用list多层转一层,又总是忘记怎么写搜索关键词,所以总是找了很久,现在把各种方法记录下来,方便自己也方便大家. 方法很多,现在就简单写8种 ...

  7. word 插入表格,位置不在最左边

    首先想到的是 样式的问题.

  8. Pytest权威教程11-模块及测试文件中集成doctest测试

    目录 模块及测试文件中集成doctest测试 编码 使用doctest选项 输出格式 pytest-specific 特性 返回: Pytest权威教程 模块及测试文件中集成doctest测试 编码 ...

  9. js off 缓动动画

    动画也有很多种,一起来学习,缓动动画吧 缓动动画 1.缓动动画原理=盒子位置+(目标盒子位置-现在盒子位置)/10 2.步长越来越小 3.让步长越来越小的公式      步长=(目标位置-本身位置)/ ...

  10. 给定一个二叉搜索树(BST),找到树中第 K 小的节点

    问题:给定一个二叉搜索树(BST),找到树中第 K 小的节点. 出题人:阿里巴巴出题专家:文景/阿里云 CDN 资深技术专家. 考察点: 1. 基础数据结构的理解和编码能力 2.  递归使用 参考答案 ...