亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? litesql-gen-cpp.cpp

?? LiteSQL is a C++ library that integrates C++ objects tightly to relational database and thus provide
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
        params.push_back("owner->getDatabase()");        params.push_back("expr");        del.param(exprParam).body(rel->getName() + "::del(" + params.join(", ") + ");");        hcl.method(cons).method(link).method(unlink).method(del);        string extraExpr = " && srcExpr";        if (handle.destObjects.size() == 1) {            xml::Object* dest = handle.destObjects[0].first;            xml::Relate* relate = handle.destObjects[0].second;            Method get("get", "litesql::DataSource<" + dest->name + ">");            get.param(exprParam).param(srcExprParam);                        params.clear();            params.push_back("owner->getDatabase()");            params.push_back("expr");            params.push_back("(" + rel->getName() + "::" + handle.relate->fieldTypeName + " == owner->id)"                             + extraExpr);                        get                .body("return " + rel->getName() + "::" + relate->getMethodName                      + brackets(params.join(", ")) + ";");                        hcl.method(get);        } else {            if (rel->sameTypes() <= 2) {                Method getTpl("get", "litesql::DataSource<T>");                getTpl.template_("class T").defineOnly()                    .param(exprParam).param(srcExprParam);                hcl.method(getTpl);                                for (size_t i2 = 0; i2 < handle.destObjects.size(); i2++) {                    xml::Object* dest = handle.destObjects[i2].first;                    xml::Relate* relate = handle.destObjects[i2].second;                    Method get("get",                                "litesql::DataSource<" + dest->name + ">");                    get.templateSpec("").param(exprParam).param(srcExprParam);                    params.clear();                    params.push_back("owner->getDatabase()");                    params.push_back("expr");                    params.push_back("(" + rel->getName() + "::" + handle.relate->fieldTypeName + " == owner->id)"                                     + extraExpr);                    get.body("return " + rel->getName() + "::" + relate->getMethodName                              + brackets(params.join(", ")) + ";");                    hcl.method(get);                 }                } else {                for (size_t i2 = 0; i2 < handle.destObjects.size(); i2++) {                    xml::Object* dest = handle.destObjects[i2].first;                    xml::Relate* relate = handle.destObjects[i2].second;                    string num = toString(i2 + 1);                    Method get("get" + dest->name + num,                                "litesql::DataSource<" + dest->name + ">");                    get.param(exprParam).param(srcExprParam);                    params.clear();                    params.push_back("owner->getDatabase()");                    params.push_back("expr");                    params.push_back("(" + rel->getName() + "::" + handle.relate->fieldTypeName + " == owner->id)"                                     + extraExpr);                    get.body("return " + rel->getName() + "::" + relate->getMethodName                              + brackets(params.join(", ")) + ";");                    hcl.method(get);                }            }        }        Method getRows("getRows", "litesql::DataSource<"                        + rel->getName() + "::Row>");        getRows.param(exprParam)            .body("return " + rel->getName()                  + "::getRows(owner->getDatabase(), "                  "expr && (" + rel->getName() + "::"                   + handle.relate->fieldTypeName +                  " == owner->id));");        hcl.method(getRows);        cl.class_(hcl);        Method hdlMethod(handle.name, o.name + "::" + className);        hdlMethod.body("return " + o.name + "::" +  className + "(*this);");        cl.method(hdlMethod);    }}void writeObjBaseMethods(Class& cl, const xml::Object& o) {    Method insert("insert", "std::string");    insert.protected_()        .param(Variable("tables", "litesql::Record&"))        .param(Variable("fieldRecs", "litesql::Records&"))        .param(Variable("valueRecs", "litesql::Records&"))        .body("tables.push_back(table__);")        .body("litesql::Record fields;")        .body("litesql::Record values;");    if (o.parentObject)        insert.body("fields.push_back(\"id_\");")            .body("values.push_back(id);");    for (size_t i = 0; i < o.fields.size(); i++) {        const xml::Field& f = o.fields[i];        insert.body("fields.push_back(" + f.name + ".name()" + ");");        insert.body("values.push_back(" + f.name + ");");        insert.body(f.name + ".setModified(false);");    }        insert.body("fieldRecs.push_back(fields);")        .body("valueRecs.push_back(values);");    if (o.parentObject) {        insert.body("return " + o.inherits                     + "::insert(tables, fieldRecs, valueRecs);");    } else        insert.body("return " + o.inherits                    + "::insert(tables, fieldRecs, valueRecs, "                     + "sequence__);");    Method create("create", "void");    create.protected_();    create.body("litesql::Record tables;")        .body("litesql::Records fieldRecs;")        .body("litesql::Records valueRecs;")        .body("type = type__;")        .body("std::string newID = insert(tables, fieldRecs, valueRecs);")        .body("if (id == 0)")        .body("    id = newID;");    Method addUpdates("addUpdates", "void");    addUpdates.protected_().virtual_()        .param(Variable("updates", "Updates&"))        .body("prepareUpdate(updates, table__);");    for (size_t i = 0; i < o.fields.size(); i++) {        const xml::Field& f = o.fields[i];        addUpdates.body("updateField(updates, table__, " + f.name + ");");    }    if (o.parentObject)         addUpdates.body(o.inherits + "::addUpdates(updates);");    Method addIDUpdates("addIDUpdates", "void");        addIDUpdates.protected_().virtual_()        .param(Variable("updates", "Updates&"));    if (o.parentObject) {        addIDUpdates            .body("prepareUpdate(updates, table__);")            .body("updateField(updates, table__, id);");        if (o.parentObject->parentObject)            addIDUpdates.body(o.inherits + "::addIDUpdates(updates);");    }        Method getFieldTypes("getFieldTypes", "void");    getFieldTypes.static_().        param(Variable("ftypes", "std::vector<litesql::FieldType>&"));    if (o.parentObject)         getFieldTypes.body(o.parentObject->name + "::getFieldTypes(ftypes);");    for (size_t i = 0; i < o.fields.size(); i++)        getFieldTypes.body("ftypes.push_back(" + o.fields[i].fieldTypeName + ");");        Method update("update", "void");    update.virtual_()        .body("if (!inDatabase) {")        .body("    create();")        .body("    return;")        .body("}")        .body("Updates updates;")        .body("addUpdates(updates);")        .body("if (id != oldKey) {")        .body("    if (!typeIsCorrect()) ")        .body("        upcastCopy()->addIDUpdates(updates);");    if (o.parentObject)         update            .body("    else")            .body("        addIDUpdates(updates);");        update        .body("}")        .body("litesql::Persistent::update(updates);")        .body("oldKey = id;");    Method delRecord("delRecord", "void");    delRecord.protected_().virtual_()        .body("deleteFromTable(table__, id);");    if (o.parentObject)        delRecord.body(o.inherits + "::delRecord();");    Method delRelations("delRelations", "void");    delRelations.protected_().virtual_();    for (map<xml::Relation*, vector<xml::Relate*> >::const_iterator i =              o.relations.begin(); i != o.relations.end(); i++) {        const xml::Relation * rel = i->first;        const vector<xml::Relate *> relates = i->second;        Split params;        for (size_t i2 = 0; i2 < relates.size(); i2++)            params.push_back("(" + rel->getName() + "::" + relates[i2]->fieldTypeName                             + " == id)");        delRelations.body(rel->getName() + "::del(*db, " + params.join(" || ") + ");");    }                Method del("del", "void");    del.virtual_()        .body("if (typeIsCorrect() == false) {")        .body("    std::auto_ptr<" + o.name + "> p(upcastCopy());")        .body("    p->delRelations();")        .body("    p->onDelete();")        .body("    p->delRecord();")        .body("} else {")        .body("    onDelete();")        .body("    delRecord();")        .body("}")        .body("inDatabase = false;");    Method typeIsCorrect("typeIsCorrect", "bool");        typeIsCorrect.body("return type == type__;").virtual_();        Method upcast("upcast", "std::auto_ptr<" + o.name + ">");    Method upcastCopy("upcastCopy", "std::auto_ptr<" + o.name + ">");    Split names;    o.getChildrenNames(names);    upcastCopy.body(o.name + "* np = NULL;");    for (size_t i = 0; i < names.size(); i++) {        upcast.body("if (type == " + names[i] + "::type__)")            .body("    return auto_ptr<" + o.name + ">(new " + names[i]                   + "(select<" + names[i]                   + ">(*db, Id == id).one()));");        upcastCopy.body("if (type == " + quote(names[i]) + ")")            .body("    np = new " + names[i] + "(*db);");    }    for (size_t i = 0; i < o.fields.size(); i++) {        upcastCopy.body("np->" + o.fields[i].name + " = "                         + o.fields[i].name + ";");    }    upcastCopy        .body("np->inDatabase = inDatabase;")        .body("if (!np)")        .body("    np = new " + o.name + "(*this);")        .body("return auto_ptr<" + o.name + ">(np);");    upcast.body("return auto_ptr<" + o.name                 + ">(new " + o.name + "(*this));");    for (size_t i = 0; i < o.methods.size(); i++) {        const xml::Method& m = o.methods[i];        Method mtd(m.name, m.returnType);        for (size_t i2 = 0; i2 < m.params.size(); i2++) {            const xml::Param& p = m.params[i2];            mtd.param(Variable(p.name, p.type));                }        mtd.defineOnly().virtual_();        cl.method(mtd);    }        cl.method(insert).method(create).method(addUpdates)        .method(addIDUpdates).method(getFieldTypes).method(delRecord).method(delRelations)         .method(update).method(del)        .method(typeIsCorrect).method(upcast).method(upcastCopy);}void writeStaticRelData(Class& cl, xml::Relation& r) {    Variable table("table__", "const std::string",                    quote(makeTableName(r.getTable())));    table.static_();    cl.variable(table);    Method initValues("initValues", "void");    bool hasValues = false;    initValues.static_();    bool same = r.sameTypes() > 1;    for (size_t i2 = 0; i2 < r.related.size(); i2++) {        string num;        if (same)            num = toString(i2 + 1);                r.related[i2].fieldTypeName = r.related[i2].objectName + num;        Variable ftype(r.related[i2].fieldTypeName,                       "const litesql::FieldType",                       quote(r.related[i2].objectName                              + toString(i2 + 1))                       + "," + quote("INTEGER") + "," + "table__");        ftype.static_();        cl.variable(ftype);    }    for (size_t i2 = 0; i2 < r.fields.size(); i2++) {        xml::Field& fld = r.fields[i2];        string data = quote(fld.name + "_") + "," +                      quote(fld.getSQLType()) + "," +                      "table__";        if (!fld.values.empty()) {            data += "," + fld.name + "_values";             Variable values(fld.name + "_values",                             "std::vector < std::pair< std::string, std::string > >");            values.static_().protected_();            cl.variable(values);            initValues.body(fld.name + "_values.clear();");            hasValues = true;            for (size_t i2 = 0; i2 < fld.values.size(); i2++) {                xml::Value& val = fld.values[i2];                initValues.body(fld.name + "_values.push_back(make_pair("                          + quote(val.name) + "," + quote(val.value) + "));");                }        }        string ftypeClass ="const litesql::FieldType";        if (!fld.values.empty()) {            ftypeClass = fld.fieldTypeName + "Type";            Class ftypeCl(ftypeClass, "litesql::FieldType");            Method cons(ftypeClass);            cons.param(Variable("n", "const string&"))                .param(Variable("t", "const string&"))                .param(Variable("tbl", "const string&"))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一级特黄大欧美久久久| 国产经典欧美精品| 国产精品亚洲午夜一区二区三区| 91免费观看视频在线| 日韩一区二区在线看| 亚洲精品福利视频网站| 国产麻豆9l精品三级站| 欧美人伦禁忌dvd放荡欲情| 亚洲欧洲日韩在线| 国产精品一区专区| 日韩亚洲欧美一区二区三区| 亚洲福利一区二区| 99精品国产99久久久久久白柏| 欧美va亚洲va国产综合| 丝袜亚洲精品中文字幕一区| 91年精品国产| 日韩理论片网站| 国产精品系列在线观看| 日韩视频国产视频| 午夜激情综合网| 欧美午夜精品一区| 亚洲一区中文日韩| 91丨porny丨蝌蚪视频| 中日韩av电影| 成人精品小蝌蚪| 中文在线一区二区| 丁香激情综合国产| 欧美国产日韩在线观看| 国产成人精品一区二| 精品盗摄一区二区三区| 奇米色一区二区| 日韩一级高清毛片| 久草中文综合在线| 精品国产凹凸成av人网站| 九九国产精品视频| 久久影院视频免费| 国产成人av资源| 国产精品视频免费| 色一情一伦一子一伦一区| 一区二区三区在线免费播放| 欧美唯美清纯偷拍| 水蜜桃久久夜色精品一区的特点| 在线成人免费视频| 蜜桃av一区二区三区| 日韩美女在线视频| 国产福利精品一区二区| ...xxx性欧美| 欧美日韩免费视频| 老司机精品视频线观看86| 国产亚洲自拍一区| 97成人超碰视| 亚州成人在线电影| 久久综合色8888| caoporm超碰国产精品| 一区二区三区电影在线播| 6080国产精品一区二区| 久久99国产精品久久99果冻传媒| 国产偷国产偷精品高清尤物| av中文字幕在线不卡| 香蕉成人啪国产精品视频综合网| 欧美一级黄色片| www.欧美日韩国产在线| 三级欧美在线一区| 久久久青草青青国产亚洲免观| jvid福利写真一区二区三区| 婷婷国产v国产偷v亚洲高清| 欧美精品一区二区三区蜜桃视频| 99视频热这里只有精品免费| 日韩影院精彩在线| 国产精品看片你懂得| 日韩一区二区三区电影在线观看| 国产丶欧美丶日本不卡视频| 亚洲一区二三区| 久久九九久久九九| 欧美中文字幕一区二区三区 | 国产视频视频一区| 91久久精品一区二区三| 国产真实乱偷精品视频免| 亚洲精品视频免费看| 久久久综合网站| 欧美日本精品一区二区三区| 不卡一二三区首页| 狠狠网亚洲精品| 日韩电影一区二区三区| 国产精品高潮呻吟| 久久免费偷拍视频| 欧美一区2区视频在线观看| 一本色道久久综合亚洲91| 粉嫩av亚洲一区二区图片| 免费人成在线不卡| 亚洲国产日韩综合久久精品| 国产精品久久久久久久久久免费看| 日韩一区二区电影在线| 欧美系列在线观看| 91视频在线观看| 国产suv一区二区三区88区| 久久精品国产久精国产| 五月天婷婷综合| 亚洲精品国产成人久久av盗摄| 国产精品久久久久久亚洲毛片| 精品久久一二三区| 日韩一区二区在线看| 欧美日韩国产成人在线免费| 99re这里只有精品首页| 成人精品国产免费网站| 国产91精品欧美| 国产精品1区二区.| 国产精品18久久久久| 精品亚洲欧美一区| 卡一卡二国产精品| 国产一区二区三区免费看| 久久精品免费观看| 久久99国产精品久久99| 紧缚奴在线一区二区三区| 国产中文字幕一区| 国产高清视频一区| 成人av免费在线| 91亚洲精品久久久蜜桃网站| 99久久婷婷国产综合精品电影 | 黄色成人免费在线| 国产尤物一区二区在线| 国产一区二区在线观看免费| 国产黑丝在线一区二区三区| 国产河南妇女毛片精品久久久| 国产成人综合在线观看| 成人久久18免费网站麻豆| 91啪九色porn原创视频在线观看| 色噜噜狠狠成人网p站| 欧美区在线观看| 久久久美女艺术照精彩视频福利播放| 国产日韩欧美a| 亚洲色图.com| 亚洲国产成人av好男人在线观看| 午夜av电影一区| 狠狠狠色丁香婷婷综合久久五月| 国产69精品久久久久毛片| 91丝袜美腿高跟国产极品老师 | 麻豆一区二区99久久久久| 国产经典欧美精品| 色综合天天天天做夜夜夜夜做| 欧美日韩精品一区二区天天拍小说 | 亚洲欧美日韩国产中文在线| 亚洲午夜成aⅴ人片| 精品亚洲成av人在线观看| 99热精品国产| 精品污污网站免费看| 久久天天做天天爱综合色| 中文字幕制服丝袜一区二区三区| 午夜视频在线观看一区二区| 国内一区二区在线| 91在线视频播放地址| 欧美精品亚洲一区二区在线播放| 久久久99精品免费观看不卡| 亚洲成人精品一区| 国产91高潮流白浆在线麻豆| 欧美挠脚心视频网站| 亚洲国产精华液网站w| 亚洲成人自拍网| kk眼镜猥琐国模调教系列一区二区| 欧美蜜桃一区二区三区| 欧美国产日韩a欧美在线观看| 亚洲va国产va欧美va观看| 99久久久精品| 精品乱人伦小说| 午夜精品福利久久久| 91在线精品秘密一区二区| 久久伊99综合婷婷久久伊| 亚洲v精品v日韩v欧美v专区| 成人精品小蝌蚪| 久久精品日韩一区二区三区| 视频在线在亚洲| 一本到一区二区三区| 中文字幕乱码久久午夜不卡| 美国欧美日韩国产在线播放| 欧美亚洲一区三区| 综合久久久久久久| 国产精品一卡二| 亚洲精品在线三区| 日本欧美肥老太交大片| 在线观看视频欧美| 亚洲日本一区二区| a亚洲天堂av| 国产精品麻豆一区二区| 国产在线乱码一区二区三区| 91精品黄色片免费大全| 亚洲一区二区三区在线看| 一本久久精品一区二区 | www激情久久| 日本美女一区二区三区| 欧美久久一区二区| 亚洲va国产va欧美va观看| 欧美日韩在线一区二区| 亚洲精品国产无套在线观| 一本大道久久a久久综合婷婷| 国产精品久久夜| 成人av网址在线| 国产精品电影一区二区三区| 成人免费看的视频| 中文字幕国产精品一区二区| 国产美女主播视频一区|