#ifndef EXE_H
#define EXE_H
#include "mainwindow.h"
#include <QApplication>
#include <QtSql>
#include <QSqlError>
#include <QtSql/QSqlDatabase>
#include <QStringList>
#include <QString>
#include <QDebug>
void exe(const QString& s2)
{
QString &s1="insert into Student(name)values('";
QString &s3="');";
const QString s=s1+s2+s3;
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
QString dsn = QString("Driver={sql server};SERVER=%1;PORT=%2;DATABASE=%3;UID=%4;PWD=%5;")
.arg("183.172.112.221")
.arg(1433)
.arg("School1")
.arg("sa")
.arg("123");
db.setDatabaseName(dsn);
bool r = db.open();
if (r)
{
qDebug() << "SQL Server 2012 Connect OK!";
QSqlQuery query2 = QSqlQuery(db);
QString sq1 = QObject::tr(s); //问题出在这
bool b = query2.exec(sq1);
if(b)
{
qDebug() << "insert data success!";
}
}
else
{
qDebug() <<"error_SqlServer:\n" << db.lastError().text();
}
db.close();
}
#endif // EXE_H
当我把s当做参数传入时,qtcreator报错“no matching function for call ”什么的,应该是参数不匹配;当我把s换做是加上双引号的sql语句时,就不会报错。我想把exe.h当做一个处理s2的函数,请问有没有什么好的解决方法?