代码之家  ›  专栏  ›  技术社区  ›  Joseph

C++/QT多行字符串;还有多个查询

  •  2
  • Joseph  · 技术社区  · 16 年前

    关于C++/QT的两个(希望)快速问题。以下内容适用于在多行上写入字符串吗?

    QString strQuery;
    strQuery="\
             CREATE TABLE foo\
                 (bar integer primary key,\
                 baz varchar(20))";
    

    我相信这是对的,但在Qt创建者中,它并没有突出显示,就好像它是一个大字符串一样。

    其次,qsqlquery.exec()是在一次执行中运行多个查询,还是每个查询都需要通过exec()运行?例如,我正在尝试以下方法:

    QSqlQuery query;
    QString strQuery;
    strQuery="\
             CREATE TABLE foo \
                 (bar integer primary key,\
                 baz varchar(10));\
            CREATE TABLE herp\
                 (de integer primary key, \
                 derp varchar(10))";
    query.exec(strQuery);
    

    据我所见,只有第一个表正在被创建。我不知道这是否与我的多行字符串、数据库类型(sqlite)有关,或者只是与qsqlquery有关。

    谢谢你的帮助!

    1 回复  |  直到 16 年前
        1
  •  5
  •   mosg    16 年前

    我认为这是正确的方法:

    QString strQuery;
    strQuery="CREATE TABLE foo " \
             "(bar integer primary key, " \
             "baz varchar(20));";
    // with this style `strQuery` will be single line, like "CREATE TABLE foo (bar integer primary key, baz varchar(20));"
    

    QSqlQuery query;
    
    QString strQuery;
    strQuery="CREATE TABLE foo " \
             "(bar integer primary key, " \
             "baz varchar(10));"
    query.exec(strQuery);
    
    strQuery="CREATE TABLE herp " \
             "(de integer primary key, " \
             "derp varchar(10))";
    query.exec(strQuery);