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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? qsql_sqlite.cpp

?? QT 開(kāi)發(fā)環(huán)境里面一個(gè)很重要的文件
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
                    break;                case QVariant::LongLong:                    res = sqlite3_bind_int64(d->stmt, i + 1, value.toLongLong());                    break;                case QVariant::String: {                    // lifetime of string == lifetime of its qvariant                    const QString *str = static_cast<const QString*>(value.constData());                    res = sqlite3_bind_text16(d->stmt, i + 1, str->utf16(),                                              (str->size()) * sizeof(QChar), SQLITE_STATIC);                    break; }                default: {                    QString str = value.toString();                    // SQLITE_TRANSIENT makes sure that sqlite buffers the data                    res = sqlite3_bind_text16(d->stmt, i + 1, str.utf16(),                                              (str.size()) * sizeof(QChar), SQLITE_TRANSIENT);                    break; }                }            }            if (res != SQLITE_OK) {                setLastError(qMakeError(d->access, QCoreApplication::translate("QSQLiteResult",                             "Unable to bind parameters"), QSqlError::StatementError, res));                d->finalize();                return false;            }        }    } else {        setLastError(QSqlError(QCoreApplication::translate("QSQLiteResult",                        "Parameter count mismatch"), QString(), QSqlError::StatementError));        return false;    }    d->skippedStatus = d->fetchNext(cache(), 0, true);    if (lastError().isValid()) {        setSelect(false);        setActive(false);        return false;    }    setSelect(!d->rInf.isEmpty());    setActive(true);    return true;}bool QSQLiteResult::gotoNext(QSqlCachedResult::ValueCache& row, int idx){    return d->fetchNext(row, idx, false);}int QSQLiteResult::size(){    return -1;}int QSQLiteResult::numRowsAffected(){    return sqlite3_changes(d->access);}QVariant QSQLiteResult::lastInsertId() const{    if (isActive()) {        qint64 id = sqlite3_last_insert_rowid(d->access);        if (id)            return id;    }    return QVariant();}QSqlRecord QSQLiteResult::record() const{    if (!isActive() || !isSelect())        return QSqlRecord();    return d->rInf;}QVariant QSQLiteResult::handle() const{    return qVariantFromValue(d->stmt);}/////////////////////////////////////////////////////////QSQLiteDriver::QSQLiteDriver(QObject * parent)    : QSqlDriver(parent){    d = new QSQLiteDriverPrivate();}QSQLiteDriver::QSQLiteDriver(sqlite3 *connection, QObject *parent)    : QSqlDriver(parent){    d = new QSQLiteDriverPrivate();    d->access = connection;    setOpen(true);    setOpenError(false);}QSQLiteDriver::~QSQLiteDriver(){    delete d;}bool QSQLiteDriver::hasFeature(DriverFeature f) const{    switch (f) {    case BLOB:    case Transactions:    case Unicode:    case LastInsertId:    case PreparedQueries:    case PositionalPlaceholders:        return true;    case QuerySize:    case NamedPlaceholders:    case BatchOperations:        return false;    }    return false;}static int qGetSqliteTimeout(QString opts){    enum { DefaultTimeout = 5000 };    opts.remove(QLatin1Char(' '));    if (opts.startsWith(QLatin1String("QSQLITE_BUSY_TIMEOUT="))) {        bool ok;        int nt = opts.mid(21).toInt(&ok);        if (ok)            return nt;    }    return DefaultTimeout;}/*   SQLite dbs have no user name, passwords, hosts or ports.   just file names.*/bool QSQLiteDriver::open(const QString & db, const QString &, const QString &, const QString &, int, const QString &conOpts){    if (isOpen())        close();    if (db.isEmpty())        return false;    if (sqlite3_open16(db.constData(), &d->access) == SQLITE_OK) {        sqlite3_busy_timeout(d->access, qGetSqliteTimeout(conOpts));        setOpen(true);        setOpenError(false);        return true;    } else {        setLastError(qMakeError(d->access, tr("Error opening database"),                     QSqlError::ConnectionError));        setOpenError(true);        return false;    }}void QSQLiteDriver::close(){    if (isOpen()) {        if (sqlite3_close(d->access) != SQLITE_OK)            setLastError(qMakeError(d->access, tr("Error closing database"),                                    QSqlError::ConnectionError));        d->access = 0;        setOpen(false);        setOpenError(false);    }}QSqlResult *QSQLiteDriver::createResult() const{    return new QSQLiteResult(this);}bool QSQLiteDriver::beginTransaction(){    if (!isOpen() || isOpenError())        return false;    QSqlQuery q(createResult());    if (!q.exec(QLatin1String("BEGIN"))) {        setLastError(QSqlError(tr("Unable to begin transaction"),                               q.lastError().databaseText(), QSqlError::TransactionError));        return false;    }    return true;}bool QSQLiteDriver::commitTransaction(){    if (!isOpen() || isOpenError())        return false;    QSqlQuery q(createResult());    if (!q.exec(QLatin1String("COMMIT"))) {        setLastError(QSqlError(tr("Unable to commit transaction"),                               q.lastError().databaseText(), QSqlError::TransactionError));        return false;    }    return true;}bool QSQLiteDriver::rollbackTransaction(){    if (!isOpen() || isOpenError())        return false;    QSqlQuery q(createResult());    if (!q.exec(QLatin1String("ROLLBACK"))) {        setLastError(QSqlError(tr("Unable to roll back transaction"),                               q.lastError().databaseText(), QSqlError::TransactionError));        return false;    }    return true;}QStringList QSQLiteDriver::tables(QSql::TableType type) const{    QStringList res;    if (!isOpen())        return res;    QSqlQuery q(createResult());    q.setForwardOnly(true);    QString sql = QLatin1String("SELECT name FROM sqlite_master WHERE %1 "                                "UNION ALL SELECT name FROM sqlite_temp_master WHERE %1");    if ((type & QSql::Tables) && (type & QSql::Views))        sql = sql.arg(QLatin1String("type='table' OR type='view'"));    else if (type & QSql::Tables)        sql = sql.arg(QLatin1String("type='table'"));    else if (type & QSql::Views)        sql = sql.arg(QLatin1String("type='view'"));    else        sql.clear();    if (!sql.isEmpty() && q.exec(sql)) {        while(q.next())            res.append(q.value(0).toString());    }    if (type & QSql::SystemTables) {        // there are no internal tables beside this one:        res.append(QLatin1String("sqlite_master"));    }    return res;}static QSqlIndex qGetTableInfo(QSqlQuery &q, const QString &tableName, bool onlyPIndex = false){    QSqlIndex ind;    q.exec(QLatin1String("PRAGMA table_info ('") + tableName + QLatin1String("')"));    while (q.next()) {        bool isPk = q.value(5).toInt();        if (onlyPIndex && !isPk)            continue;        QString typeName = q.value(2).toString().toLower();        QSqlField fld(q.value(1).toString(), qGetColumnType(typeName));        if (isPk && typeName == QLatin1String("integer"))            // integer primary key fields are auto-generated in sqlite            fld.setAutoValue(true);        fld.setRequired(q.value(3).toInt() != 0);        fld.setDefaultValue(q.value(4));        ind.append(fld);    }    return ind;}QSqlIndex QSQLiteDriver::primaryIndex(const QString &tblname) const{    if (!isOpen())        return QSqlIndex();    QSqlQuery q(createResult());    q.setForwardOnly(true);    return qGetTableInfo(q, tblname, true);}QSqlRecord QSQLiteDriver::record(const QString &tbl) const{    if (!isOpen())        return QSqlRecord();    QSqlQuery q(createResult());    q.setForwardOnly(true);    return qGetTableInfo(q, tbl);}QVariant QSQLiteDriver::handle() const{    return qVariantFromValue(d->access);}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线精品视频免费播放| 高清不卡在线观看av| 欧美电影免费观看高清完整版在 | 自拍偷拍欧美精品| 欧美综合久久久| 精品无码三级在线观看视频| 国产精品乱码妇女bbbb| 欧美老女人在线| 国产成人自拍网| 亚洲不卡一区二区三区| 国产午夜精品一区二区 | av电影一区二区| 免费观看一级特黄欧美大片| 亚洲精品视频观看| 日本一区二区免费在线观看视频| 欧美日韩免费观看一区二区三区| 成人午夜激情在线| 国产剧情av麻豆香蕉精品| 视频精品一区二区| 亚洲高清中文字幕| 亚洲精品久久久蜜桃| 亚洲欧洲一区二区在线播放| 国产亚洲精品aa午夜观看| 日韩三级在线观看| 在线不卡一区二区| 欧美性大战久久| 在线亚洲人成电影网站色www| 国产91精品一区二区麻豆网站| 国内精品视频666| 免费在线观看成人| 天天av天天翘天天综合网色鬼国产 | 欧美一区二区福利在线| 欧美亚洲免费在线一区| 91成人网在线| 91成人免费在线视频| 色av一区二区| 色先锋aa成人| 91成人在线免费观看| 欧美亚洲国产怡红院影院| 欧美亚洲国产bt| 欧美色图免费看| 欧美日韩国产高清一区| 欧美日韩大陆在线| 91精品久久久久久久久99蜜臂 | 中文字幕精品一区二区精品绿巨人| 久久品道一品道久久精品| 久久久久久电影| 国产蜜臀97一区二区三区| 国产精品欧美一区二区三区| 亚洲欧洲无码一区二区三区| 一区二区三区四区国产精品| 一区二区三区日韩欧美精品| 亚洲一区二三区| 日本成人在线视频网站| 国产综合久久久久久久久久久久| 国产99久久久国产精品潘金网站| 不卡的av中国片| 欧美亚洲动漫精品| 欧美一级在线免费| 国产亚洲一区二区三区在线观看 | 亚洲日本va在线观看| 一区二区成人在线视频| 丝袜亚洲另类欧美综合| 狠狠色综合播放一区二区| 国产成人一区在线| 91女厕偷拍女厕偷拍高清| 欧美色网站导航| 日韩三级视频中文字幕| 国产精品麻豆网站| 亚洲成人先锋电影| 久久99蜜桃精品| 99精品热视频| 777a∨成人精品桃花网| 国产视频一区在线播放| 亚洲最新在线观看| 毛片不卡一区二区| 成人高清在线视频| 欧美日韩国产精品成人| 久久久久成人黄色影片| 亚洲国产日韩精品| 国产精品一区2区| 欧美色图免费看| 国产亚洲一区二区三区四区 | 久久午夜老司机| 亚洲图片你懂的| 美女精品自拍一二三四| 97久久精品人人做人人爽50路| 4438x成人网最大色成网站| 日本一区二区三区免费乱视频| 亚洲免费在线观看| 加勒比av一区二区| 欧洲av一区二区嗯嗯嗯啊| 久久久久亚洲综合| 无吗不卡中文字幕| www.av亚洲| 日韩欧美自拍偷拍| 一区二区三区鲁丝不卡| 国产一区二区三区日韩| 欧美日韩精品一区二区在线播放| 国产精品无码永久免费888| 日本不卡在线视频| 色老综合老女人久久久| 国产午夜精品一区二区| 蜜桃在线一区二区三区| 欧美色窝79yyyycom| 国产精品二三区| 国产精品18久久久久久久久久久久| 欧美疯狂做受xxxx富婆| 亚洲欧美日韩国产成人精品影院| 国产老女人精品毛片久久| 日韩欧美一区二区在线视频| 一区二区在线观看av| 成人av在线观| 国产三级精品三级| 国产在线精品视频| 日韩午夜激情免费电影| 石原莉奈在线亚洲二区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 欧美久久一二三四区| 一区二区三区在线视频观看| 成人网在线播放| 久久夜色精品国产噜噜av| 日本sm残虐另类| 欧美人与禽zozo性伦| 亚洲成人激情综合网| 在线观看日韩精品| 一区二区三区四区五区视频在线观看| va亚洲va日韩不卡在线观看| 国产精品水嫩水嫩| 国产成人8x视频一区二区| 国产午夜亚洲精品午夜鲁丝片| 国产一区二区三区| www国产精品av| 久国产精品韩国三级视频| 精品欧美一区二区三区精品久久| 麻豆成人91精品二区三区| 91精品国产91久久综合桃花| 水蜜桃久久夜色精品一区的特点 | 国内精品国产成人| 精品国产亚洲一区二区三区在线观看 | 亚洲日本在线a| 在线中文字幕一区| 亚洲地区一二三色| 91精品婷婷国产综合久久性色| 人人超碰91尤物精品国产| 欧美一级欧美三级在线观看 | 色妹子一区二区| 亚洲久本草在线中文字幕| 在线观看av不卡| 亚洲成人精品一区| 日韩视频免费直播| 国产做a爰片久久毛片| 国产午夜精品美女毛片视频| 福利一区在线观看| 亚洲视频免费看| 91久久精品网| 免费欧美高清视频| 久久久久一区二区三区四区| 99热精品国产| 亚洲va欧美va天堂v国产综合| 7777精品伊人久久久大香线蕉经典版下载 | 精品国产污污免费网站入口 | 久久―日本道色综合久久| 成人激情电影免费在线观看| 一色桃子久久精品亚洲| 欧美日韩国产综合草草| 久久97超碰色| 亚洲日本免费电影| 91精品国产综合久久久久久久久久 | 欧美精品丝袜久久久中文字幕| 蜜臀av国产精品久久久久 | 尤物在线观看一区| 欧美一级一区二区| 成人av在线资源网| 日韩电影免费一区| 国产精品午夜免费| 在线播放/欧美激情| 成人免费视频国产在线观看| 亚洲制服丝袜在线| 久久婷婷成人综合色| 色偷偷久久一区二区三区| 麻豆极品一区二区三区| 中文字幕一区视频| 91精品欧美福利在线观看| 成人高清视频免费观看| 青椒成人免费视频| 亚洲天天做日日做天天谢日日欢 | 综合久久国产九一剧情麻豆| 欧美一级片免费看| 成人av免费在线观看| 免费欧美日韩国产三级电影| 日韩一区欧美小说| 精品成人一区二区三区| 在线观看不卡视频| 成人激情免费电影网址| 蜜臀av性久久久久蜜臀aⅴ| 一区二区三区**美女毛片| 久久婷婷久久一区二区三区| 欧美高清你懂得| 99视频一区二区|