QSQLQUERY的语法错误源
Syntaxe error source with QSqlQuery
当我在数据库上执行源命令时,QSQLQUERY有问题。此代码有效:
QString myRequest = "CREATE DATABASE MY_DATABASE;";
lQueryResult.Exec(myRequest);
if(!lQueryResult.GetMexec())
{
qDebug() << "Error in the request";
return false;
}
else
{
qDebug() << "The request is OK";
}
此代码不起作用,我有一个语法错误:
您有错误 您的SQL语法;检查与您的MariadB相对应的手册 服务器版本,用于靠近'源的正确语法 ./folder/myfile.sql'在第1行qmysql:无法执行查询
这是代码:
myRequest = "source myFile.sql";
lQueryResult.Exec(myRequest);
if(!lQueryResult.GetMexec())
{
qDebug() << "Error";
qDebug() << lQueryResult.LastError();
return false;
}
else
{
qDebug() << "OK";
}
我可以通过此命令成功地完成我的源:
QString lCommand("mysql -uUsername -pPassword Data_Base -e "source " + variablePath + variableFile + ".sql"");
system(lCommandeProvisoire.toStdString().c_str());
我没有错误。但是,如果我在此之后执行此代码,则有错误
未选择QMYSQL的数据库:无法执行查询
:
TheRequest = "SELECT * FROM MyTable;";
QueryResult.Exec(TheRequest);
if(!QueryResult.GetMexec())
{
qDebug() << QueryResult.LastError();
return false;
}
else
{
qDebug() << "OK";
}
但是,如果我从shell中执行了一个select *,它可以工作。
另外,如果我在登录的mysql登录的外壳中执行此操作,则可以使用:
source myFile.sql
SOURCE
是mysql client命令,这意味着它是由mySQL shell执行的,而不是由mySQL Server执行的,因此您无法通过QSqlQuery
执行它。您可以通过阅读整个文件,然后将其内容发送到服务器来解决此问题。
相关文章:
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 为什么我会收到错误 C2143 语法错误:缺少"*"之前的';'?
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- "错误 C0000:语法错误,令牌"<EOF>"处出现意外$end,并且不确定
- 我该怎么做才能摆脱使用命名空间时的语法错误?
- C++语法头文件错误
- 如何摆脱错误c2061;语法错误 cout?
- 语法错误:D3DX10Core 中的标识符'TEXTMETRICA'
- 错误 C2146:语法错误:标识符"A1"之前缺少","
- main.cpp(11):错误 C2059:语法错误:"字符串"
- 我想获取点的属性,它报告错误 C3867:"point::output_x":非标准语法;使用"&"创建指向成员的指针
- RedisGraph 语法错误在偏移量 8 靠近"创建"
- 如何修复此 FSM C++语法错误 C3867
- 函数错误 C2059:语法错误:'>'不起作用
- 为什么在main()之前断言会导致语法错误"error: expected ')' before numeric constant"?
- system() 返回错误语法错误:"("意外
- C++图形初始化错误(语法或丢失文件缺陷?
- 获取0:1(1):错误:语法错误,尝试编译着色器时意外$end
- Visual Studio错误:语法错误:标识符