lazarus
跨平台free pascal语言ide工具
http://www.fpccn.com/ 社区
下载ftp://freepascal.dfmk.hu/pub/lazarus/releases
https://sourceforge.net/projects/lazarus/files/
首先到官网找到的代码,然后试着运行,发现有些不对,就试着修正了适应最新版本,中文汉化了
现在找到的方法发现lazarus链接mysql跟版本有关,找到最新版本是TMySQL57Connection
更高版本mysql这种方法估计不行,用mysql的库跟编译32位或64位有关系,而官网早就更高版本了,低版本的很不好找
if MySQLConnection1.Connected then begin
SQLTransaction1.Active := False;
MySQLConnection1.Close;
end;
// Set the connection parameters.
MySQLConnection1.HostName := HostEdit.Text;
MySQLConnection1.UserName := UserEdit.Text;
MySQLConnection1.Password := PasswdEdit.Text;
MySQLConnection1.DatabaseName := DbEdit.Text; // MySQL is allways there!
MySQLConnection1.CharSet:='utf8';
ShowString('Opening a connection to server: ' + HostEdit.Text);
MySQLConnection1.Open;
// First lets get a list of available databases.
if MySQLConnection1.Connected then begin
ShowString('Connected to server: ' + HostEdit.Text);
ShowString('Retreiving list of available databases.');
StatusBar1.SimpleText:='Connected to server: ' + HostEdit.Text;
//SQLQuery1.SQL.Text := 'SET NAMES utf8;';
//SQLQuery1.ExecSQL();
SQLQuery1.SQL.Text := 'show databases';
SQLQuery1.Open;
while not SQLQuery1.EOF do begin
DatabaseComboBox.Items.Add(SQLQuery1.Fields[0].AsString);
SQLQuery1.Next;
end;
SQLQuery1.Close;
ShowString('List of databases received!');
end;
MySQLConnection1.CharSet:='utf8'; 是我后来摸索的,有了它,数据库出来的中文就能正常显示不乱码
为了正常显示时间字段类型,在form的create里设置一下 即可
FormatSettings.ShortDateFormat := 'yyyy-mm-dd';
FormatSettings.LongTimeFormat := 'hh:nn:ss';
假如网上找到的mysql库是32位,lazarus必须编译32位的exe才可调用
假如安装lazarus-1.8.4-fpc-3.0.4-win64.exe,必须再安装lazarus-1.8.4-fpc-3.0.4-cross-i386-win32-win64.exe即可再编译32位应用
假如安装lazarus-2.0.10-fpc-3.2.0-win32.exe,就再安装lazarus-2.0.10-fpc-3.2.0-cross-x86_64-win64-win32.exe即可再编译64位
一般情况下就不要费劲多目标编译了,在deepinlinux下装的64位,
http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/
下载了libmysqlclient20_5.7.29-1debian9_amd64.deb装上了运行库
windows下下载较新的mysql5.7安装包装上6.1.X的dll,真是有点懵,后来找网上其他地方5.7.10的安装包得到了5.7的dll
lazarus也许有什么办法忽略版本校验或其他方法,以后在研究,暂时用用就行了
完善后的代码可下载:https://download.csdn.net/download/qiaozhangchi/12716258
----------------------
补充一下:在win linux下都是库很容易搞定,到了macos找不到库加载不了库,安装了mysql把/usr/local/mysql/lib下库放到本工程目录,启动程序就是加载失败?把路径加入系统环境变量路径是可以成功,打开终端运行命令也可以?
然后灵机一动,这不就是当前目录的问题吗?然后启动时取可执行文件路径设置工作目录,ok成功了
SetCurrentDir(ExtractFilePath(Application.ExeName));
win下默认就是当前路径工作目录,macos是把程序包装成xx.app目录,所以有点不一样