java sqlite3驱动下载_使用sqlite3驱动程序在QSqlQuery中使用多个sql语句

我写了一个简单的函数来从一个文件读取SQL并一次执行一个语句 .

/**

* @brief executeQueriesFromFile Read each line from a .sql QFile

* (assumed to not have been opened before this function), and when ; is reached, execute

* the SQL gathered until then on the query object. Then do this until a COMMIT SQL

* statement is found. In other words, this function assumes each file is a single

* SQL transaction, ending with a COMMIT line.

*/

void executeQueriesFromFile(QFile *file, QSqlQuery *query)

{

while (!file->atEnd()){

QByteArray readLine="";

QString cleanedLine;

QString line="";

bool finished=false;

while(!finished){

readLine = file->readLine();

cleanedLine=readLine.trimmed();

// remove comments at end of line

QStringList strings=cleanedLine.split("--");

cleanedLine=strings.at(0);

// remove lines with only comment, and DROP lines

if(!cleanedLine.startsWith("--")

&& !cleanedLine.startsWith("DROP")

&& !cleanedLine.isEmpty()){

line+=cleanedLine;

}

if(cleanedLine.endsWith(";")){

break;

}

if(cleanedLine.startsWith("COMMIT")){

finished=true;

}

}

if(!line.isEmpty()){

query->exec(line);

}

if(!query->isActive()){

qDebug() << QSqlDatabase::drivers();

qDebug() << query->lastError();

qDebug() << "test executed query:"<< query->executedQuery();

qDebug() << "test last query:"<< query->lastQuery();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值