UE4连接Mysql数据库解决方案

来源:互联网 发布:防火墙 vlan 网络隔离 编辑:程序博客网 时间:2024/05/19 08:44
第一步:请阅读http://user.qzone.qq.com/378100977/blog/1430883016这位仁兄的链接,经过我的实际测试。这篇文章的代码没有问题。
第二步:这篇文章中未解决的问题:
            2.1 程序可以编译,但是链接找不到libmysql。解决的办法就是将libmysql.dll放到Binaries中。
            2.2 文章中使用了绝对路径,比较LOW,估计作者也是稀里糊涂,没有深究。我们要相对路径!!!

                   做法:将文章中的PrivateIncludePaths改成PublicIncludePaths.为什么这么改就可以了。可以看一下这两个函数的注释!

    2.3 有些朋友使用比较新的UE版本,可能会遇到RulesCompiler.GetModuleFileName(String)已过时的问题,解决办法如下:

RulesAssembly RA;
        FileReference CheckProjectFile;
        UProjectInfo.TryGetProjectForTarget("工程名", out CheckProjectFile);
        RA = RulesCompiler.CreateProjectRulesAssembly(CheckProjectFile);
        FileReference FR = RA.GetModuleFileName(this.GetType().Name);
        string ModulePath = Path.GetDirectoryName(FR.CanonicalName);

第三步:到这一步,很多新手花了很多时间,欣喜若狂。被UE折腾的扎耳挠思。终于编译,调用没有问题了。谢天谢天。那么问题来了,这时候发现     读取MYSQL中的中文数据后显示的都是乱码!!(如果你MySQL还没连上,请不用往下看了。。)

             解决乱码问题:

      中文乱码无非就是编码格式问题。MySQL现在默认都是UTF8编码。不存在语言障碍。那为什么还是乱码呢?当然,还是编码问题!

               解决编码问题
                            第一:在mysql_real_connect后,程序中设置编码为mysql_set_character_set(mysql, "utf8");【可能有人问,MySQL不是默认UTF8吗?为什么还要设置?sorry,就得设置,否则无法正确显示。修改MySQL配置文件也不行】
                            第二:将读出的数据使用UTF8_TO_TCHAR()函数转码
                    到此,中文乱码问题解决。有了TCHAR,就拥有了FString.什么都不怕了!
第四步:如何访问MySQL数据库,使用语句还是存储过程?我的建议是,都搞搞。那个爽,用那个。存储过程是MSSQL的TSQL集合,访问数据库效     率高,速度快!以前MySQL都没有,终于良心发现,加上了。在目前的高版本中基本都支持。那么问题来了,怎么调用呢?请百度,大把的                文章。。。不过大部分的文章都是你抄我,我抄你。没关系,能运行就行!
0 0