当前位置:首页 » 编程语言 » qt链接sql为什么那么难
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

qt链接sql为什么那么难

发布时间: 2023-01-22 21:48:52

㈠ Qt5 linux 无法连接sqlite

先安装好sqlite,然后去系统软件源中找qt自带的sqlite的驱动安装。
Linux平台下解决Qt5连接mysql数据库的问题:输入sudoapt-getinstalllibqt5sql5-mysql解决,这种方法只能解决Qt是用sudoapt-getinstallqt-sdk命令装的低版本的Qt5(如5、2、x)缺少MySQL驱动问题,如果你的Qt5版本为5、7、X,那么就不能用这种方法解决,请参考下面的方法。

㈡ QT连接SQL Server 2008 R2出现“Driver not loaded”的问题。

在程序发布目录下新建一个文件夹sqldrivers,将qsqlodbc4.dll放到这个文件夹里面。

㈢ QT连接数据库,在其他电脑上运行时,为什么提示无法连接数据库

你没有把QT的数据库驱一起复制到其它电脑上去QtSqld4.dll或者QtSql4.dll版本不一样,一个是debug一个是release版。

㈣ 请我怎样实现qt和sql server 2014的连接

怎样实现qt和sql server 2014的连接
步骤:
1. Qt里新建一个空工程,添加main.cpp文件。
2. 在工程文件(.pro文件)添加一行:QT += sql。
3. 该敲代码了,代码如下:
[cpp] view plain
#include <QtGui>
#include <QString>
#include <QTextCodec>
#include <QSqlDatabase>
#include <QtSql>

/*连接数据库*/
void OpenDatabase()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName(QString("DRIVER={SQL SERVER};"
"SERVER=%1;"
"DATABASE=%2;"
"UID=%3;"
"PWD=%4;").arg("QIAN-PC")
.arg("StuManager")
.arg("sa")
.arg("123456"));
if (!db.open())
{

QMessageBox::warning(0, qApp->tr("Cannot open database"),
db.lastError().databaseText(), QMessageBox::Cancel);
}
else
{
qDebug()<<"Connect to Database Success!";
}

}

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

㈤ QTcreater链接不到用SQL Server2008 的数据库是怎么回事

A、检查SQL服务是否已启动
开始---控制面板----管理工具---服务-------sql server服务---启动
B、如是远程连接,检查是否已设置好远程连接。
1、开始-->程序->sql配置工具->sqlsever 外围应用配置器
2、点击服务和连接的的外围应用配置器
3、选择远程连接
4、选择本地及远程连接
5、选择反使用TCP/IP
6、单击确定

㈥ QT访问MYSQL数据库为什么一打开子窗口访问数据库就出问题

意思是说,还有某查询引用默认数据库连接"qt_sql_default_connection"。
如果忽略该警告,Qt官方文档里也写了,可能会出现内存泄漏:
Warning: There should be no open queries on the database connection when this function is called,
otherwise a resource leak will occur.
还是不出现这个警告的好。怎么把它弄没了呢?我把一切外围的对象都排除了:仅建立一个连接,打开它,然后关闭连接,调用removeDatabase()。居然还有警告!问题已经锁定在我关闭连接的语句上:
QSqlDatabase::removeDatabase(QSqlDatabase::database().connectionName());
默认连接的名字也是默认的,需要通过connectionName()函数获得。这样写貌似没什么问题,后来调试发现,QSqlDatabase::database()静态函数实际上使默认连接的引用计数+1。上述句子相当于:
QSqlDatabase db = QSqlDatabase::database();//获得实例。
QString name = db.connectionName();//获得默认连接名。
QSqlDatabase::removeDatabase(name);//删除默认连接。
这样,问题就清晰了,db获得了一个引用,此时引用计数为2。在调用removeDatabase()时,db对象并没有被删除,默认连接的引用计数仍为2,于是报告警告信息。
我们只需将其改为:

QString name;
{
name = QSqlDatabase::database().connectionName();
}//超出作用域,隐含对象QSqlDatabase::database()被删除。
QSqlDatabase::removeDatabase(name);
问题就解决了!
如果直接打默认连接名的话,代码就简单多了,不过名字不太好打(再说了,万一Qt把默认连接名改了呢!):
QSqlDatabase::removeDatabase("qt_sql_default_connection");//不推荐。