QT连接SQLserver数据库和设置数据源名称(DSN)的方法

合集下载

QT连接SQLserver数据库和设置数据源名称(DSN)的方法

QT连接SQLserver数据库和设置数据源名称(DSN)的方法

编写外部应用程序来查询与操作数据库数据1、打“开控制面板”,找到“管理工具”。

2、进入“管理工具”,找到“数据源(ODBC)”,双击进入“ODBC 数据库管理器”。

3、点击“添加按钮”,进入“创建新数据源向导”。

4、选择数据库驱动程序,因为是微软的SQLServer数据库,所以选择驱动为SQLServer。

点击完成。

5、进入如下页面,在名称,描述,和服务器三个位置分别自己写描述信息。

需要注意的是在输入服务器的时候,服务器的名称应该在启动SqlServer数据库管理程序时的服务器名称一样。

如下图是服务器名是5F-CAD32。

点击下一步。

6、用户登录验证,选择WindowsNT验证。

也可以用ID和密码登录但是要创建用户名和密码,创建用户名和密码方法如下图。

点击下一步。

附:在SqlServer2008的客户端创建一个登录用户的方法。

把用户角色设置为public和sysadmin系统管理者。

7、选择需要用到的数据库。

下拉列表列出了所有可以连接的数据库。

8、点击下一步。

其余选项默认,点击完成就可以。

显示下面的画面点击测试,显示测试成功。

则我们的数据源DSN创建成功。

9、写外部应用程序以ODBC方式访问数据库数据(这里写的是qt程序,要注意的是~\plugins\sqldrivers\下应该有qsqlodbcd4.dll(debug)或qsqlodbc4.dll,他们是qt访问SqlServer数据库的库文件)。

#include "mainwindow.h"#include "ui_mainwindow.h"#include <QtSql/QSqlDatabase>#include <QMessageBox>#include <QSqlError>#include <QSqlQuery>#include <QDebug>{/* 方法一:通过DSN建立连接。

使用qt进行数据库访问的方法和步骤

使用qt进行数据库访问的方法和步骤

使用qt进行数据库访问的方法和步骤【标题】使用Qt进行数据库访问的方法和步骤【引言】在现代开发中,数据库是不可或缺的一部分。

Qt作为一个功能强大的跨平台开发框架,提供了灵活且易于使用的工具,使开发人员能够轻松地与数据库进行交互。

本文将深入研究使用Qt进行数据库访问的方法和步骤,帮助读者全面了解和掌握该技术。

【摘要】本文将介绍如何通过Qt使用SQL模块来操作数据库。

我们将探讨以下主题:1. 引入Qt的SQL模块;2. 建立与数据库的连接;3. 执行SQL查询和更新操作;4. 使用事务和预处理语句;5. 错误处理和调试。

通过深入的讨论和实际示例,读者将能够掌握Qt中的数据库访问技术。

【正文】一、引入Qt的SQL模块Qt的SQL模块是一个用于操作数据库的框架,支持多种数据库后端,如SQLite、MySQL、PostgreSQL等。

要使用Qt的SQL功能,我们需要在项目中引入Qt的SQL模块,并链接相应的数据库驱动程序。

要引入Qt的SQL模块,我们可以在.pro文件中添加如下代码:```QT += sql```需要注意的是,如果要使用特定的数据库后端,还需要添加相应的数据库驱动程序。

如果要使用SQLite数据库,可以在.pro文件中添加以下代码:```QT += sqlQT += sqlite```二、建立与数据库的连接在进行数据库操作之前,我们首先需要建立与数据库的连接。

Qt提供了一个QSqlDatabase类,用于管理数据库连接。

我们可以通过以下步骤建立与数据库的连接:1. 创建一个QSqlDatabase对象:```QSqlDatabase db = QSqlDatabase::addDatabase("驱动程序名称"); ```其中,"驱动程序名称"可以根据需要指定为相应的数据库后端,如"QMYSQL"、"QSQLITE"等。

配置sql server ODBC 数据源

配置sql server ODBC 数据源

配置sql server ODBC 数据源1.配置sql server ODBC 数据源在2003操作系统下配置sql server ODBC 数据源步骤,辅助调试步骤:1)第一步控制面板下选择管理工具--- ODBC 数据源,双击图标单击添加2)第二步在系统DSN选项上,单击添加按钮,出现创建数据源对话框,选择SQL server3)第三步单击完成按钮,出现创建到sql serve 数据源。

如图所示输入数据源名称、数据源描述和SQL server 所在的服务器名称或者IP 地址。

服务器名称也是sql server 所在的服务器名称,也可以是IP地址。

单击下一步4)第四步选择登陆sql server 时的身份验证方式。

并输入登陆sql server 时所用到的用户名和密码,如下图所示用户名和密码是在sql 建立的。

在sql server 数据库中选择安全性---> 登陆如图所示关键点:点击“客户端配置”,可以反复在“named pipes(P)”和“TCP/IP”调试A、软件并不用ODBC作为数据源访问数据库,安装时有时会碰到网络版连接不上数据库的情况,telnet指令测试成功!B、“TCP/IP(T)”数据源配置失败的情况下,可以在尝试“named pipes(P)”配置数据源,基本可以故障解决。

故障原因:操作系统,在日常使用中,发生改动导致。

5)第五步默认数据库是master,因测试连接,所以不用更改数据库。

然后单击下一步6)第六步按默认设置,单击完成按钮。

7)第七步这里给出了数据库连接的摘要信息,如果想测试一下是否能够连接到数据库,可以单击“测试数据源(T)”,会出现测试结果,如下图所示。

sqlserver连接数据库的方法

sqlserver连接数据库的方法

sqlserver连接数据库的方法
SQLServer连接数据库的方法有多种,具体如下:
1. 使用SQL Server Management Studio连接数据库:打开SQL Server Management Studio,输入服务器名称和身份验证信息(Windows身份验证或SQL Server身份验证),然后选择要连接的数据库。

2. 使用SQL Server数据连接向导连接数据库:打开Visual Studio等开发工具,选择SQL Server数据连接向导,输入服务器名称和身份验证信息,选择要连接的数据库,完成连接。

3. 使用ODBC连接数据库:在控制面板中打开ODBC数据源管理器,创建一个新数据源,选择SQL Server驱动程序,输入服务器名称和身份验证信息,选择要连接的数据库,完成连接。

4. 使用连接数据库:在Visual Studio等开发工具中,使用SqlConnection对象连接数据库,设置连接字符串包括服务器名称、身份验证信息和要连接的数据库名。

5. 使用Entity Framework连接数据库:在Visual Studio等开发工具中,使用Entity Framework连接数据库,设置连接字符串包括服务器名称、身份验证信息和要连接的数据库名,使用DbContext 对象操作数据库。

以上是SQL Server连接数据库的常见方法,可以根据实际情况选择合适的方法进行连接。

- 1 -。

QT连接Sqlite数据库操作

QT连接Sqlite数据库操作

1. 创建新类sqldb,会自动生成两个文件sqldb.h和sqldb.cpp(需指定其基类为QOBject):<sqldb.h>#include <QObject>#include <QSqlDatabase>class SqlDB : public Qobject{Q_OBJECTpublic:explicit SqlDB(QObject *parent = 0);void connectDB(); //创建连接函数void closeDB(); //创建关闭函数signals:private:QSqlDatabase db; //建立数据库的文件描述符};2.在sqldb.cpp中实现数据库函数的功能<sqldb.cpp>void SqlDB::connectDB(){db = QSqlDatabase::addDatabase("QSQLITE"); //添加sqlite类型的数据库db.setDatabaseName("server.s3db"); //指定数据库名为server.s3dbif (!db.open()){QMessageBox::critical(NULL, "sqlDB","connect error");return;}}void SqlDB::closeDB(){db.close();}3.在窗口中使用数据库<mainwin.h>添加头文件:#include <QSqlTableModel>#include "sqldb.h"在private:中添加数据库的打开指针和打开模式:SqlDB *db;QSqlTableModel *userModel;4.在窗口中的具体操作<mainwin.cpp>在主窗口中建立TableView控件#include "mainwin.h"#include "ui_mainwin.h"MainWin::MainWin(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWin){ui->setupUi(this);db = new SqlDB(this); //建立db->connectDB(); //连接this->userModel->clear(); //初始化用户模式this->userModel = new QSqlTableModel; //建立用户模式空间this->userModel->setTable("user"); //设置用户模式userModel->setHeaderData(0, Qt::Horizontal, "QQ");userModel->setHeaderData(1, Qt::Horizontal, "昵称");userModel->setHeaderData(2, Qt::Horizontal, "密码");userModel->setHeaderData(3, Qt::Horizontal, "IP");userModel->setHeaderData(4, Qt::Horizontal, "port");userModel->setHeaderData(5, Qt::Horizontal, "状态");this->userModel->select();this->ui->tableView->setModel(userModel);}。

sql server连接数据库的步骤

sql server连接数据库的步骤

sql server连接数据库的步骤连接SQL Server数据库主要有以下步骤:1.安装SQL Server数据库:首先需要安装SQL Server数据库软件。

可以从Microsoft官网下载SQL Server安装包,然后进行安装。

安装过程中需要选择数据库引擎组件以及相应的实例名称。

2.配置SQL Server:安装完成后,需要对SQL Server进行一些基本的配置。

包括设置服务器身份验证模式(Windows身份验证或SQL Server身份验证)、设置端口号以及配置防火墙等。

3.启动SQL Server服务:在安装完成并配置好之后,需要确保SQL Server服务已经启动。

可以通过Windows服务管理器查看并启动SQL Server服务。

4.确定数据库服务器的名称:在连接SQL Server之前,需要明确数据库服务器的名称,即实例名称。

在安装SQL Server时可以指定实例名称,如果没有指定则默认为默认实例(MSSQLSERVER)。

5.确定认证方式:连接SQL Server时可以使用Windows身份验证或SQL Server身份验证。

Windows身份验证是使用操作系统的登录凭据进行连接,SQL Server身份验证是使用用户名和密码进行连接。

6.使用SQL Server Management Studio(SSMS)连接数据库:SSMS是用于管理和操作SQL Server数据库的工具。

打开SSMS后,在连接对话框中选择服务器类型为“数据库引擎”,然后输入数据库服务器的名称和认证方式。

7.连接到数据库服务器:在SSMS中输入数据库服务器的名称和认证方式后,点击“连接”按钮进行连接。

如果连接成功,则可以开始操作数据库。

8.创建数据库:连接到数据库服务器后,可以通过SSMS创建数据库。

在SSMS的对象资源管理器中右键点击“数据库”,然后选择“新建数据库”,输入数据库名称、文件路径等信息,点击“确定”即可创建数据库。

[PyQt]PyQt5连接SQLServer数据库,并读取所有数据库名称

[PyQt]PyQt5连接SQLServer数据库,并读取所有数据库名称PyQt5使⽤QSqlDatabase类连接数据库。

⼀般可以使⽤其静态⽅法addDatabase()来创建QSqlDatabase对象。

addDatabase()⽅法有两个参数,第⼀个参数是驱动名称字符串,⽐如“QODBC”;第⼆个参数是连接名称字符串,由⽤户⾃⾏定义,也可以省略,省略时创建默认数据库连接。

QSqlDatabase对象创建后,可以使⽤静态⽅法database()获取其引⽤,其第⼀个参数是数据库名称字符串,第⼆个参数是布尔值(默认值为True),⽤于设置是否打开数据库,如果两个参数都省略,返回默认数据库并打开。

创建数据库对象后需要对其进⾏设置,相关的设置⽅法有setHostName()、setPort()、setDatabaseName()、setUserName()、setPassword()等。

在使⽤ODBC驱动时,setDatabaseName()⽐较重要,它的参数可以是DSN名称,也可以是数据库连接字符串。

这些设置必须在数据库打开前完成,否则⽆效。

数据库对象设置完毕后,使⽤open()⽅法打开,使⽤close()⽅法关闭。

PyQt5使⽤QSqlQuery对象操作数据库。

可使⽤QSqlQuery(database)构造⽅法来创建数据库对象,如果省略参数,则使⽤默认数据库连接。

可使⽤QSqlQuery的exec()⽅法执⾏SQL语句。

举例:连接Sql Server数据库并获取所有数据库名称。

#导⼊QtSql模块from PyQt5.QtSql import QSqlDatabase, QSqlQuery#创建数据库连接并打开(未指定数据库名,创建默认连接)db = QSqlDatabase.addDatabase("QODBC")db.setDatabaseName("Driver={Sql Server};Server=localhost;Database=master;Uid=sa;Pwd=123456")db.open()#创建查询对象(使⽤默认数据库连接)query = QSqlQuery()#查询数据库名(保存在master.sys.databases表中)query.exec("Select name From sys.databases")#依次打印数据库名(系统数据库除外)while query.next():#获取名称字段的值name = query.value("name")#如果不是系统数据库,打印之if name.lower() not in ('master', 'tempdb', 'model', 'msdb'):print(name)#关闭数据库db.close()。

在Qt中使用SQLite数据库

在Qt中使⽤SQLite数据库前⾔SQLite(sql)是⼀款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,⾮常适合嵌⼊式系统。

Qt5以上版本可以直接使⽤SQLite(Qt⾃带驱动)。

⽤法1 准备1. 引⼊SQL模块在Qt项⽬⽂件(.pro⽂件)中,加⼊SQL模块:QT += sql2. 引⽤头⽂件在需要使⽤SQL的类定义中,引⽤相关头⽂件。

例如:#include <QSqlDatabase>#include <QSqlError>#include <QSqlQuery>2 使⽤1. 建⽴数据库检查连接、添加数据库驱动、设置数据库名称、数据库登录⽤户名、密码。

QSqlDatabase database;if (QSqlDatabase::contains("qt_sql_default_connection")){database = QSqlDatabase::database("qt_sql_default_connection");}else{database = QSqlDatabase::addDatabase("QSQLITE");database.setDatabaseName("MyDataBase.db");database.setUserName("XingYeZhiXia");database.setPassword("123456");}上述代码解释:(1)第⼀⾏中,建⽴了⼀个QSqlDatabase对象,后续的操作要使⽤这个对象。

(2)if语句⽤来检查指定的连接(connection)是否存在。

这⾥指定的连接名称(connection name)是qt_sql_default_connection,这是Qt默认连接名称。

qt连接数据库的方法

qt连接数据库的方法1. 简介Qt是一个跨平台的开发框架,提供了丰富的GUI控件和易于使用的API。

它也支持与各种数据库的连接。

在本篇文章中,我们将介绍Qt如何连接数据库。

我们将涵盖Qt 支持的各种数据库类型,例如SQLite、MySQL和PostgreSQL等。

2. SQLite数据库连接SQLite是一个轻量级的关系型数据库,可以在任何平台上使用,并且无需安装。

以下是Qt连接SQLite数据库的示例代码:```cppinclude <QCoreApplication>include <QtSql>int main(int argc, char *argv[]){QCoreApplication a(argc, argv);QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE");db.setDatabaseName("test.db");if (!db.open()){qDebug() << "Failed to connect to database.";return 1;}qDebug() << "Database connected successfully.";// Do some database-related work heredb.close();return a.exec();}```在上面的示例中,我们首先使用`QSqlDatabase::addDatabase()`函数创建一个数据库连接,然后使用`setDatabaseName()`函数指定要连接的数据库文件的名称。

如果连接成功,则应该输出“Database connected successfully.”,否则输出“Failed to connect to database.”。

如何创建数据源名称(DSN)

如何创建数据源名称(DSN)若要通过使用 ASP 页连接到数据库,必须首先在 Web 服务器上为要连接到的数据库的类型创建数据源名称 (DSN)。

为此,请使用下列方法之一。

为数据库程序创建数据源名称若要为数据库程序(如 Microsoft Access)创建 DSN,请按照下列步骤操作:1.以管理员身份登录到 Web 服务器。

2.单击开始,指向设置,然后单击控制面板。

3.双击管理工具,然后双击数据源 (ODBC)。

4.单击系统 DSN 选项卡,然后单击添加。

5.选择所需的数据库驱动程序(例如,“Microsoft Access Driver (*.mdb)[/b]”),然后单击完成。

6.在数据源名框中,键入当您在 ASP 代码中引用此 DSN 时要使用的名称。

例如,Northwind。

7.在说明框中,为 DSN 键入可选的说明。

例如,Northwind DSN。

8.单击选择。

9.在选择数据库对话框中,浏览并选择所需的数据库。

例如,Northwind.mdb。

备注:如果该数据库不在 Web 服务器上,单击网络,然后单击浏览。

找到包含该数据库的共享网络文件夹,然后单击确定。

单击完成,然后选择所需的数据库。

10.单击确定。

11.单击高级。

12.如果要在使用此 DSN 时自动提供到该数据库的登录凭据,请将它们键入到“登录名称[/b]”和密码框中。

单击确定。

13.单击确定,然后单击确定。

为数据库服务器创建数据源名称若要为 SQL Server 创建 DSN,请执行下列步骤:1.以管理员身份登录到 Web 服务器。

2.单击开始,指向设置,然后单击控制面板。

3.双击管理工具,然后双击数据源 (ODBC)。

4.单击系统 DSN 选项卡,然后单击添加。

5.选择 SQL Server,然后单击完成。

6.在名称框中,键入在 ASP 代码中引用此 DSN 时要使用的名称。

例如,Northwind。

7.在说明框中,为 DSN 键入可选的说明。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编写外部应用程序来查询与操作数据库数据1、打“开控制面板”,找到“管理工具”。

2、进入“管理工具”,找到“数据源(ODBC)”,双击进入“ODBC 数据库管理器”。

3、点击“添加按钮”,进入“创建新数据源向导”。

4、选择数据库驱动程序,因为是微软的SQLServer数据库,所以选择驱动为SQLServer。

点击完成。

5、进入如下页面,在名称,描述,和服务器三个位置分别自己写描述信息。

需要注意的是在输入服务器的时候,服务器的名称应该在启动SqlServer数据库管理程序时的服务器名称一样。

如下图是服务器名是5F-CAD32。

点击下一步。

6、用户登录验证,选择WindowsNT验证。

也可以用ID和密码登录但是要创建用户名和密码,创建用户名和密码方法如下图。

点击下一步。

附:在SqlServer2008的客户端创建一个登录用户的方法。

把用户角色设置为public和sysadmin系统管理者。

7、选择需要用到的数据库。

下拉列表列出了所有可以连接的数据库。

8、点击下一步。

其余选项默认,点击完成就可以。

显示下面的画面点击测试,显示测试成功。

则我们的数据源DSN创建成功。

9、写外部应用程序以ODBC方式访问数据库数据(这里写的是qt程序,要注意的是~\plugins\sqldrivers\下应该有qsqlodbcd4.dll(debug)或qsqlodbc4.dll,他们是qt访问SqlServer数据库的库文件)。

#include "mainwindow.h"#include "ui_mainwindow.h"#include <QtSql/QSqlDatabase>#include <QMessageBox>#include <QSqlError>#include <QSqlQuery>#include <QDebug>{/* 方法一:通过DSN建立连接。

DSN即数据源名称。

//下面例子sql server上的MessageFile数据库上。

程序中指定此连接的名称为dbTemp,可以随便写。

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", "dbTemp");//指定数据源名称为:MSSQLServerQString dsn = QString::fromLocal8Bit("MSSQLServer");db.setDatabaseName(dsn);if(!db.open()) {QMessageBox::about(0, QObject::tr("Database Error"),stError().text());//如果dsn名设错,将会在db.open()时出现“[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified QODBC3: Unable to connect”//“[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序QODBC3: Unable to connect”错误。

}*///* 方法二:通过主机名和用户名密码来建立连接。

//下面例子连接到 172.26.5.51 上的sql server名为test的数据库上。

程序中指定此连接的名称为dbTemp,可以随便写。

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", "dbTemp2");//指定服务器主机的IP地址,即数据库在哪个电脑上。

可以是自己电脑的IP地址。

db.setHostName("172.26.5.51");//ODBC连接SQL Server驱动的格式。

"Driver={sqlserver};server=servername;database=dbname;uid=sa;pwd=pass;"QString dsn = QString::fromLocal8Bit("DRIVER={SQLSERVER};SERVER=172.26.5.51;DATABASE=test");//如果已经设定DSN,可以写为QString::fromLocal8Bit("DSN数据源名称")db.setDatabaseName(dsn);//即使dsn中已经设置了UID和PASSWD,仍然需要执行setUserName和setPassword的步骤//还要注意这里的用户名要有创建表的权限,不然创建下面的表student会不成功。

db.setUserName("aisq");db.setPassword("aisq");if(!db.open()) {QMessageBox::about(0, QObject::tr("Database Error"),stError().text());}//*/else{QSqlQuery query(db); //以下执行相关 sql语句query.exec("if exists student drop student");query.exec("create table student(id int primary key,name varchar(20))");query.exec("insert into student values(2,'xiafang')");query.exec("insert into student values(7,'wanghua')");query.exec("insert into student values(3,'aisq')");query.exec("insert into student values(4,'fucan')");query.exec("select id,name from student where id>=2");while(query.next()){int id=query.value(0).toInt(); //query.value(0)中0表示第一个字段的值,即是id的值QString name=query.value(1).toString().trimmed();qDebug()<<"id="<<id<<" "<<"name="<<name<<endl;}}db.close();}附:ODBC连接适合数据库类型连接方式access "Driver={microsoft accessdriver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;"dBase "Driver={microsoft dbasedriver(*.dbf)};driverid=277;dbq=------------;"oracle "Driver={microsoft odbc fororacle};server=oraclesever.world;uid=admin;pwd=pass;"MSSQL server "Driver={sqlserver};server=servername;database=dbname;uid=sa;pwd=pass;"MS text "Driver={microsoft text driver(*.txt;*.csv)};dbq=-----;extensions=asc,csv,tab,txt;PersistSecurityInfo=false;"Visual Foxpro "Driver={microsoft Visual Foxprodriver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;"MySQL "Driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;"SQLite "Driver={SQLite3 ODBC Driver};Database=D:\SQLite\*.db"PostgreSQL "Driver={PostgreSQLANSI};server=127.0.0.1;uid=admin;pwd=pass;database=databaseName"OLEDB连接适合的数据库类型连接方式access "Provider=microsoft.jet.oledb.4.0;data source=your_database_path;userid=admin;password=pass;"oracle "Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;" MS SQL Server "Provider=SQLOLEDB;data source=machinename;initialcatalog=dbname;userid=sa;password=pass;"MS text "Provider=microsof.jet.oledb.4.0;data source=your_path;Extended Properties'text;FMT=Delimited'"参考:/community/forums/topic.asp?topic_id=523765/bbs/read.php?tid=12414/bbs/read.php?tid=7197&keyword=SQL%20Server。

相关文档
最新文档