发现使用DBExpress进行MySQL连接老是有莫名其妙的问题,直接改为FireDAC
在上一篇的DataSnap服务框架程序中,将连接的数据库由MSSQL改为本文的MySQL
使用的MySQL数据库是绿色的,以下两个地址内容是一样的,CSDN下载地址 ,百度网盘下载地址 密码: qd6x
需要组件:
TFDPhyMySQLDriverLink
TFDConnection
TFDQuery
TDataSetProvider(使用上一篇中已经添加好的,只是调整其DataSet为FDQuery1即可)
在ServerMethodsUnit1中,
1、添加FireDAC Links中的组件 TFDPhysMySQLDriverLink,作为链接层,配置MySQL的基本信息
BaseDriverID:=MySQL,
Vendorlib的值为mysql文件夹中的libmysql.dll的路径如 C:\MySQL5.5.6\mysql5.5.6\lib\libmysql.dll
2、TFDConnection
DriverName:=MySQL
LlginPrompt:=false
Params里面重点填写
DriverID=MySQL
Server=52.369.21.22
database=newland
User_Name=root
password=123
characterset=gb2312
Connected:=true
3、TFDQuery
SQL里面写sql语句,例如 select * from 表名
Connection:=TFDConnection1
4、TDataSetProvider
调整DataSet为FDQuery1
其它客户端和服务端代码不变,仍然和 上一篇 保持一致
客户端增加查询按钮,
在事件中写入语句如下:
procedure TForm1.Button5Click(Sender: TObject);
begin
ClientDataSet2.Close;
ClientDataSet2.CommandText := ' select * from T_basic ';
ClientDataSet2.Open;
end;
显示结果
如果运行的时候出错,将对应的 libmysql.dll 如( C:\MySQL5.5.6\mysql5.5.6\lib\libmysql.dll)拷贝到和服务端程序相同的位置即可。
mysql 查询若干条语句的语法不同于MSSQL的select top 100 * from xx
而是:
sql>select * from 表 limit m,n;
其中m表示从第m个开始选,n表示选n条。也可以没有m,默认从表头开始
参考:
https://blog.csdn.net/5201314/article/details/42345125
http://blog.sina.com.cn/s/blog_4ed3608d0102xh6c.html