zoukankan      html  css  js  c++  java
  • D语言中编译entity,database与mysql时需要注意的一个问题

           注:编译entity及database时需要修改一个ulong类型为uint类型,不然会有_mysql_stmt_prepare@16连接错误。

           entity库可以使用ORM方式访问数据库, 把类型与数据库直接对应,使用起来非常方便。使用entity时需要另一个库database库的支持。使用dub编译entity库时会自动下载。

    @table("users")
    struct User
    {
        @primarykey()
        int id;
    
        @column("floatcol")
        float fcol;
    
        @column("doublecol")
        double dcol;
    
        @column("datecol")
        Date date;
    
        @column("datetimecol")
        DateTime dt;
    
        @column("timecol")
        Time time;
    
        @column()
        string stringcol;
    
        @column()
        ubyte[] ubytecol;
    }

    这是使用entity的一个例子,把User结构与数据库中的表users表进行对应。

    编译entity库需要下载几个东西:

    1.下载entity库, 在 https://github.com/putaolabs/entity 中下载,我是在release中下载的是entity-0.0.8.zip

    2.下载mysql,http://dlsw.baidu.com/sw-search-sp/soft/ea/12585/mysql-5.6.24-win32.1432006610.zip,在使用时需要连接mysql库。

    image

    一、配置dub.json文件

         接下来配置dub.json文件:

    image

              第一行添加-m32mscoff是让编译器编译出ms-coff格式。

              第二行是让entity启用USE_MYSQL的version,这样可以让entity连接mysql的库。

    二、编译entity库   (编译成功使用是会有问题,需要修改)

             使用dub -b release命令编译,这时会自动下载database库到用户目录,我的在:

             C:UsersAiyanAppDataRoamingdubpackagesdatabase-0.0.3database目录

    image

    三、修改database库中的一个问题

             打开 database-0.0.3databasesrcstddatabasemysqlindings.d文件,如下图:

    image 打开文件后搜索mysql_stmt_prepare找到mysql_stmt_prepare函数,如下图:

    image

        这个函数的最后一个参数是ulong类型,把它修改为uint类型,修改后如图:

    image     这样修改是因为mysql中使用的是unsinged long类型,而32位C++在windows中unsinged long类型实际只有4字节,而不是8字节。修改后再修改database目录中的dub.json文件,如下图:

    image

    四、再次编译entity库

           再次编译entity库前先编译database库。

           image        再到entity目录编译entity库:

    image

           编译好后就可以使用这两个库了

    image 

    作者:宛宏南

  • 相关阅读:
    移动端的dl
    以resnet作为前置网络的ssd目标提取检测
    MobileNet V2
    axis
    后RCNN时代的物体检测及实例分割进展
    RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa
    caffe2安装
    git学习
    各种各样的卷积核
    数字图像处理_基础知识
  • 原文地址:https://www.cnblogs.com/wanhongnan/p/5784322.html
Copyright © 2011-2022 走看看