zoukankan      html  css  js  c++  java
  • 如何使用模板生成 sqlite3 sql 创建语句?

    template<typename T,typename... Args>
    std::string createTable(T tableName,Args&&... args)
    {
        std::string sql = "CREATE TABLE IF NOT EXISTS";
        sql += " ";
        sql += tableName;
        sql += "(";
        for(const auto &arg:{args...}){
            sql += arg;
            sql += ",";
        }
        if(!sql.empty()){
            char& back = sql.back();
            back = ')';
        }
        sql += ";";
        return sql;
    }
    
        QString sql = QString::fromStdString(createTable(std::string("blog"),
                    "id TEXT PRIMARY KEY NOT NULL",
                    "title TEXT NOT NULL",
                    "content TEXT NOT NULL",
                    "push_time TEXT NOT NULL",
                    "tag TEXT"));
        qDebug() << sql;
    
    SELECT,INSERT,UPDATE,DELETE,ALTER TABLE.
    
    Sqlite3 data type   SQL type description                                        Recommended input(C++ or Qt data type)
    NULL                NULL value                                                  NULL
    INTEGER             Signed integer,stored in 8,16,24,32,48,                     typedef qint8/16/32/64
                        or 64-bits depending on the magnitude of the value
    REAL                64-bit floating point value                                 By default mapping to QString
    TEXT                Character string(UTF-8,UTF-16BE or UTF-16-LE)               Mapped to QString
    CLOB                Charater large string object                                Mapped to QString
    BLOB                The value is a BLOB of data,stored exactly as it was input  Mapped to QByteArray
    
  • 相关阅读:
    English trip V1
    English trip V1
    第一类斯特林数
    bzoj 3601 一个人的数论
    bzoj 4407 于神之怒加强版
    bzoj 2693 jzptab
    bzoj 4184 shallot
    luogu P3920 [WC2014]紫荆花之恋
    bzoj 4269 再见Xor
    luogu P2183 [国家集训队]礼物
  • 原文地址:https://www.cnblogs.com/cheungxiongwei/p/9262322.html
Copyright © 2011-2022 走看看