Catalog
  1. 1. qt连接sql server 需要配置ODBC数据源
  2. 2. 测试代码
    1. 2.0.1. mainwindow.h
    2. 2.0.2. mainwindow.cpp
qt连接sql

首先向今天帮助我调试mysql的大哥@湖畔 同学致以诚挚的感谢

​    我今天本打算用qt链接mysql的,但是折腾了一天,看了网上各种教程,无论结果怎样都是QMYSQL not loaded。我还专程向csdn 大佬@湖畔同学进行了请教,他花费了宝贵的时间来无私帮助我调试代码,虽然还是失败了,但是我还是在这里表示衷心的感谢。

​   好了,下面来说说sql如何链接qt。

qt连接sql server 需要配置ODBC数据源

一、数据源配置
  控制面板 → 管理工具 → ODBC 数据源

搜素ODBC

选择SQL Server

  数据源名称自起(等会儿代码中会用到)。
  服务器输入要连接服务器名称。

  录入登录名,密码

  选择要操作的数据库

  完成

  测试数据库能否连接,出现测试成功则说明可以链接。

测试代码

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QSqlQuery>
#include <QSqlDatabase>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();

private slots:
void on_pushButton_clicked();

private:
Ui::MainWindow *ui;
QSqlDatabase db;
};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtDebug>
#include <QSqlQuery>
#include <QSqlDatabase>
#include <QSqlError>

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("(local)");//服务器名
QString dsn = QString::fromLocal8Bit("mytest");
db.setDatabaseName(dsn);//数据源名
db.setUserName("sa");//连接数据库用户名
db.setPassword("superzhaoyang1");//连接数据库密码
on_pushButton_clicked();
}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::on_pushButton_clicked()
{
if(!db.open())
{
qDebug() << "database open faile!";
qDebug()<<db.lastError().text();
return;
}
else
{
qWarning()<<"database open success!";
}

QSqlQuery query(db);
QString str = "delete from test where id = '111';//根据你的数据表对这句话进行修改
if(query.exec(str))
{
qDebug()<<"delete sucess";
}
else
{
qDebug()<<"faile"<<query.lastError();
}
}

最后结果如下:

显示open success,并且id为“111”的内容确实被删除了。

(注:如果在登陆那里出现sql state:什么乱七八糟的,则在sql中的安全性-登录名-sa上右键属性,在常规中设置密码,并点击状态选择登陆启用;继而在服务器上右键属性的安全性中选择SQL SERVER和windows身份认证模式)

  1. 打开数据库——用Windows身份登录数据库

    SQL2008.sa'登录失败(错误18456)图文解决方法

  2. 登录名——双击sa(打开属性)

    SQL2008.sa'登录失败(错误18456)图文解决方法

  3. 常规——设置密码——确定

    SQL2008.sa'登录失败(错误18456)图文解决方法

  4. 状态——登录:启用——确定

    SQL2008.sa'登录失败(错误18456)图文解决方法

  5. 右击服务器名——属性

    SQL2008.sa'登录失败(错误18456)图文解决方法

  6. 安全性——选中 SQL Server 和 Windows 身份验证模式——确

    SQL2008.sa'登录失败(错误18456)图文解决方法

  7.        右击服务器名——重新启动——关闭数据库连接,退出程序——用sa登录到数据库——解决

Author: superzhaoyang
Link: http://yoursite.com/2020/03/28/qt连接sql/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
  • 支付宝

Comment