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使用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 数据源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连接数据库的方法有多种,具体如下:
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数据库操作
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数据库主要有以下步骤: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 键入可选的说明。
配置数据源DSN
简单地说:1.先保证ping通(有防火墙的先关闭防火墙)2.在命令提示符下执行:telnet 192.168.28.8 1433 不会报错3.连接时使用用ip连接企业管理器4.如果不行SQL Server服务器--开始--程序--Microsoft SQL Server--服务器网络实用工具--启用WinSock代理--代理地址:(sql server服务器IP)--代理端口--1433---确定5.如果还不行,在客户端装个SQL Server客户端配置一下:开始--程序--Microsoft SQL Server--客户端网络实用工具--别名--添加--网络库选择"tcp/ip "--服务器别名输入SQL服务器名--连接参数--服务器名称中输入SQL服务器ip地址--如果你修改了SQL的端口,取消选择"动态决定端口",并输入对应的端口号SQL Server连接中的四个最常见错误:一. "SQL Server 不存在或访问被拒绝"这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多.一般说来,有以下几种可能性:1,SQL Server名称或IP地址拼写有误2,服务器端网络配置有误3,客户端网络配置有误要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因.============= 首先,检查网络物理连接=============ping <服务器IP地址/服务器名称>如果ping <服务器IP地址> 不成功,说明物理连接有问题,这时候要检查硬件设备,如网卡,HUB,路由器等.还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如ISA Server.防火墙软件可能会屏蔽对ping,telnet 等的响应因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口. 如果ping <服务器IP地址> 成功而,ping <服务器名称> 失败则说明名字解析有问题,这时候要检查DNS 服务是否正常.有时候客户端和服务器不在同一个局域网里面,这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用HOSTS文件来进行名字解析,具体的方法是:1.使用记事本打开HOSTS文件(一般情况下位于C:\WINNT\system32\drivers\etc).添加一条IP地址与服务器名称的对应记录,如:172.168.10.24 myserver2.或在SQL Server 的客户端网络实用工具里面进行配置,后面会有详细说明.=======其次,使用telnet 命令检查SQL Server服务器工作状态============= telnet <服务器IP地址> 1433如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明SQL Server 服务器工作正常,并且正在监听1433端口的TCP/IP 连接如果命令返回"无法打开连接"的错误信息,则说明服务器端没有启动SQL Server 服务,也可能服务器端没启用TCP/IP协议,或者服务器端没有在SQL Server 默认的端口1433上监听.=============接着,我们要到服务器上检查服务器端的网络配置,检查是否启用了命名管道.是否启用了TCP/IP 协议等等=============可以利用SQL Server 自带的服务器网络使用工具来进行检查.点击:程序-- Microsoft SQL Server -- 服务器网络使用工具打开该工具后,在"常规"中可以看到服务器启用了哪些协议.一般而言,我们启用命名管道以及TCP/IP 协议.点中TCP/IP 协议,选择"属性",我们可以来检查SQK Server 服务默认端口的设置一般而言,我们使用SQL Server 默认的1433端口.如果选中"隐藏服务器",则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接.============= 接下来我们要到客户端检查客户端的网络配置=============我们同样可以利用SQL Server 自带的客户端网络使用工具来进行检查,所不同的是这次是在客户端来运行这个工具.点击:程序-- Microsoft SQL Server -- 客户端网络使用工具打开该工具后,在"常规"项中,可以看到客户端启用了哪些协议.一般而言,我们同样需要启用命名管道以及TCP/IP 协议.点击TCP/IP 协议,选择"属性",可以检查客户端默认连接端口的设置,该端口必须与服务器一致.单击"别名"选项卡,还可以为服务器配置别名.服务器的别名是用来连接的名称,连接参数中的服务器是真正的服务器名称,两者可以相同或不同.别名的设置与使用HOSTS 文件有相似之处.通过以上几个方面的检查,基本上可以排除第一种错误.。
qt连接数据库sql server ODBC 不能正常驱动解决办法
1 经过小白的两天努力终于将qt连接sql server 数据库的问题解决网上的例子几乎尝试完毕,希望我的这些能给大家些参考:Qt连接sql server ODBC不能驱动,1 第一步检查自己的目录下面有没有这样的两个文件如图:如果没有自己需要手动驱动,或则通过代码检查自己的qt是否支持对sql server的驱动代码如下所示:运行结果如下图所示:这里面是有QODBC说明是对sql server的支持,当然有的时候存在,在我们打开数据库的时候未必支持,也许你上面qsqlodbc.dll 和qsqlodbcd.dll库不是你自己的库,可能是重网上下载的,或则给别人要的,这个两个库相当重要,下面介绍如何自己编译这两个库,我是在windows 下手都编译的当然在windows下命令行也可以自己输入命令进行编译生成指定的动态库,当然啦命令行的,网上百度一大堆,下面小白自己介绍一下自己手动的生成动态库的方法:1 步骤1 入下图:进该目录下:打开.pro文件:第二步:构建->重新构建项目odbc->查看qt\qt5.6.0\5.6\Src\qtbase\plugins\sqldrivers\odbc目录下面是否有qsqlodbc.dll和qsqlodbcd.dll这两个库,如果有恭喜你构建成功,如果没有可去这个文件下面找这两个库(小编的当时就在这个文件下面)路径入下图所示:第三步骤:将搞好的库拷贝复制过来放到如下文件夹里面:点击运行就可以连接你的sql server 数据库啦以上不同的可能路径不对其他的可按步骤进行操作:也许开发环境的不同导致不能正常运行:Qt 5.6.0.32位windows server 2012 64 位系统连接sql server 2012以上简单的介绍希望对你有点帮助!再此非常感谢那位来自南京的朋友的帮助!兰亭序永和九年,岁在癸丑,暮春之初,会于会稽山阴之兰亭,修禊事也。
如何创建数据源名称(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 键入可选的说明。
配置SQLServerODBC数据源
配置SQLServerODBC数据源■ 配置SQL Server ODBC数据源================================在XP操作系统下配置SQL Server ODBC数据源步骤,辅助调试。
第一步在控制面板下选择管理工具->ODBC数据源,双击图标出现如下界面第二步在系统DSN 选项卡片上,单击“添加(D)”按钮,出现创建新数据源对话框,选择SQL Server第三步单击第二步的“完成”按钮,出现创建到SQL Server的新数据源。
如下图所示。
输入数据源名称、数据源描述和SQL Server 所在的服务器名称或者IP地址。
服务器名称可以是SQL Server所在的机器名称,也可以是IP地址。
单击下一步按钮。
第四步选择登录SQL Server时的身份验证方式。
并输入登录SQL Server 时所用到的用户名和密码。
如下图所示。
这里的用户名和密码是在SQL Server中建立的。
在SQL Server 数据库中选择安全性->登录,如下图所示。
关键点,点击“客户端配置(T)...”按钮,可以反复在“Named Pipes(P)”和“TCP/IP(T)”调试。
故障现象:A、软件并不用ODBC作为数据源访问数据库,安装时有时会碰到网络版连接不上数据库的情况,Telnet指令测试成功!这时用ODBC 配置一下,故障解除!B、“TCP/IP(T)”数据源配置失败的情况下,可以再尝试“Named Pipes(P)”,配置数据源,基本可以故障解除!故障原因:操作系统,在日常使用中,发生较大改动所致。
第五步默认数据库是master,因测试联接,所以不用更改数据库。
然后单击下一步按钮。
第六步按默认设置,单击完成按钮。
第七步这里给出了数据库连接的摘要信息,如果想测试一下是否能够连接到数据库,可以单击“测试数据源(T)...”按钮,会出现测试结果,如下图所示。
配置sqlserverODBC
配置sqlserverODBC
配置sqlserver ODBC
1.打开电脑开始菜单,在运行里出入ODBCAD32 (基于32位系统)点
击确定
2.弹出ODBC数据源管理器,选择系统DSN选项卡。
点击添加按钮
3.弹出创建新数据源窗口,选择数据源驱动程序,(SQL Server)点
击完成。
4 弹出创建到SQL Server的新数据源窗口,在名称(M):填写所要连接的数据库名称,服务器选择服务器的电脑名(如果没出来且网络通畅,请将客户端电脑设成与服务器一个IP段)
5.弹出创建到SQL Server的新数据源窗口,选择:使用用户输入登录ID和密码的SQL Server 验证。
登录ID:输入sql server 的用户名。
密码点击下一步。
6.弹出一下窗口。
勾选更改默认的数据库为按钮,选择所要连接
的数据库名。
点击下一步。
6.点击完成
7.点击测试数据源
8.显示如下标示配置成功,如果未成功重新按第一步操作。
qt连接sql server
本文示例成功运行的前提是电脑上已经运行了SQL Server并且有数据库及数据表。
1、新建工程:打开Qt Creator,File -> New File or Project,左边选择Qt Widget Project,右边选择Qt Gui Application单击Choose;填写工程名称(这里是1)及选择目录-> Next -> Next -> Next -> Finish,工程顺利生成并自动回到了主界面,单击一下左边的绿色小三角,就会编译运行这个空白的程序。
2、连接数据库:要连接数据库,就要手工向工程里面的相关文件添加代码,具体如下:1.pro:添加一行QT += sqlmain.cpp:添加引用1.#include <QApplication>2.#include "mainwindow.h"3.4.//以下是手工添加的引用5.#include <QSqlDatabase>6.#include <QSqlError>7.#include <QMessageBox>8.9.//这个是手工添加的函数10.void OpenDatabase()11.{12. QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");13. db.setDatabaseName(QString("DRIVER={SQL SERVER};"14. "SERVER=%1;" //服务器名称15. "DATABASE=%2;"//数据库名16. "UID=%3;" //登录名17. "PWD=%4;" //密码18. ).arg("192.168.1.252")19. .arg("数据库名")20. .arg("登录名")21. .arg("密码")22. );23.if (!db.open())24. {25. QMessageBox::critical(0, qApp->tr("Cannot open database"),26. stError().databaseText(), QMessageBox::Cancel);27.28. }29.}30.31.int main(int argc, char *argv[])32.{33. QApplication a(argc, argv);34. MainWindow w;35. w.show();36.37. //打开数据库38. OpenDatabase();39.40.return a.exec();41.}双击mainwindow.ui 拖一个TableView和一个PushButton到界面上,然后在PushButton上右键-> Go to slot -> OKmainwindow.cpp文件代码如下1.#include "mainwindow.h"2.#include "ui_mainwindow.h"3.4.//手工添加以下引用5.#include <QSqlQueryModel>6.7.MainWindow::MainWindow(QWidget *parent) :8. QMainWindow(parent),9. ui(new Ui::MainWindow)10.{11. ui->setupUi(this);12.}13.14.MainWindow::~MainWindow()15.{16.delete ui;17.}18.19.void MainWindow::on_pushButton_clicked()20.{21. QSqlQueryModel *model = new QSqlQueryModel;22. model->setQuery("select * from product");//这里直接设置SQL语句,忽略最后一个参数23. ui->tableView->setModel(model);24.25. //以下是视觉方面的效果,不加也没影响26.27. //隔行变色28. ui->tableView->setAlternatingRowColors(true);29.30. //设置行高31.int row_count = model->rowCount();32.for(int i =0; i < row_count; i++)33. {34. ui->tableView->setRowHeight(i, 20);35. }36.}3、保存并运行:保存所有代码,单击左边绿色三角形编译运行单击顺利运行弹出的窗体上的按钮,顺利查询出数据库记录!。
sqlserver数据库连接方式分析、详解
sqlserver数据库连接⽅式分析、详解先画⼀张概况图*OLEDB⽅式连接Sql⾝份验证模式:Provider="SQLOLEDB;data source=server_name;initialcatalog=databasename;uid=username;pwd=password;"Windows⾝份验证模式:ConnectString=”Provider=SQLOLEDB;Data Source=server_name;DataBase=databasename; Integrated Security=SSPI;Persist Security=true”注释:(此两种⽅式的却别仅在于windows验证中⽤Integrated Security=SSPI代替了sql验证中的uid=username;pwd=password语句(即指明⽤户名、密码语句))1.Provider=SQLOLEDB:提供者为SQLOLEDB(此为固定)2.Integrated Security=SSPI:集成安全机制采⽤SSPISSPI是Security Support Provider Interface(Microsoft安全⽀持提供器接⼝)SSPI是定义得较全⾯的公⽤API,⽤来获得验证、信息完整性、信息隐私等集成安全服务,以及⽤于所有分布式应⽤程序协议的安全⽅⾯的服务。
设置Integrated Security为 True 的时候,采⽤windows⾝份验证模式。
只有设置为 False 或省略该项的时候,采⽤UserID, PWD 来连接。
Integrated Security 可以设置为: True, false, yes, no ,还可以设置为:sspi ,相当于 True,建议⽤这个代替 True。
3.Persist Security Info:坚持安全信息Persist Security Info属性的意思是表⽰是否保存安全信息,其实可以简单的理解为"ADO在数据库连接成功后是否保存密码信息",True表⽰保存,False表⽰不保存.ADO缺省为False(即可有可⽆).总体来说,如果数据库连接成功后不再需要连接的密码,出于安全性考虑,还是建议将Persist Security Info设为false,以防⽌后门程序取得数据库连接的密码.4.initial catalog等同于database(可以互换):指定连接数据库的名字(如果省略则连接的是当前⽤户名的默认数据库,详情见下⽂)5.DATA SOURCE是SQL服务器的名字在data source⾥⽤localhost或(local)或“.”都代表本地服务器. 也可⽤本机的外⽹IP地址例如:data source=192.168.24.71; *ODBC⽅式连接使⽤数据源⽅式:此种⽅式主要是配置odbc数据源,有三种⽅式,系统dsn、⽤户dsn、⽂件dsn。
使用qt进行数据库访问的方法和步骤
使用Qt进行数据库访问的方法和步骤1. 引言在现代软件开发中,数据库访问是一个非常重要的环节。
Qt作为一个跨评台的应用程序开发框架,提供了丰富且易用的数据库访问功能,能够帮助开发人员快速、高效完成数据库操作。
本文将深入探讨使用Qt进行数据库访问的方法和步骤,旨在帮助读者全面了解Qt数据库模块的使用。
2. 概述Qt数据库模块Qt提供了QtSql模块来实现对数据库的访问,它支持多种数据库,包括SQLite、MySQL、PostgreSQL等。
QtSql模块提供了一些类和函数,用于连接数据库、执行SQL语句、处理查询结果等操作。
使用Qt 进行数据库访问的一般步骤包括连接数据库、执行SQL语句、处理查询结果和关闭数据库连接。
3. 连接数据库在使用Qt进行数据库访问前,首先需要建立与数据库的连接。
连接数据库的过程包括选择数据库驱动、设置连接参数、打开数据库连接等步骤。
以下是连接数据库的示例代码:```cpp// 选择数据库驱动QSqlDatabase db = QSqlDatabase::aDatabase("QMYSQL");// 设置连接参数db.setHostName("localhost");db.setDatabaseName("mydb");db.setUserName("user1");db.setPassword("123456");// 打开数据库连接if(db.open()) {qDebug() << "Database connected!";} else {qDebug() << "Database connection failed!";}```4. 执行SQL语句连接成功后,就可以执行SQL语句对数据库进行操作。
Qt提供了QSqlQuery类来执行SQL语句,并可以获取执行结果。
建立SqlServer数据库及配置ODBC
一.在SQL SERVER中建立dh_carteen的数据库1.1在SQL SERVER中查询分析器中
1.2打开creat_table4d3.sql文件
1.3执行程序生成Dh_carteen数据库
1.4.1 如图1运行SQL企业管理器
图1
1.4.2 如图2 选中logins 下的用户dh_carteen,按右键如图3示
图2
1.4.3 如图3示将数据库dh_carteen 授权给dh_carteen用户,按[确定]
点击,再点击。
图3
二.Windows 2000下配置ODBC步骤:
2.1 打开‘我的电脑’----‘控制面板’----‘管理工具’----‘数据源ODBC’
如图4
图4
2.2按<添加>,如图5所示
图5
2.3按[完成],如图6所示
图6
2.4按<下一步>,输入登录ID ‘dh_carteen’密码‘89321’按<下一步>,如图1.4所示
图7
2.5 按<下一步>,改变默认的数据库为‘dh_carteen’,如图8所示
图8
2.6 按<下一步> ,按< 完成>,如图9所示
图9
2.7 按<测试数据源>,如图10所示
图10
三.数据库还原后授权步骤3.1 如图11
3.2 重复1.
4.1 至1.4.5 给用户DH_caarteen授权。
SQLServer数据库连接方法
SQLServer数据库连接⽅法我们⽤c#写ado或者是asp,都需要连接数据库来读写数据,今天我们就来总结⼀下数据库连接都有哪些⽅法。
⾸先我们就写最直接的⽅法,在事件中直接连接。
(在这⾥就⽤WEB页⾯来展⽰)⾸先我们建⽴web页⾯,简单的两个textbox控件和⼀个button控件就可以了。
为了配置数据⽅便,我们在添加⼀个DataSource配置数据源就是为了配置web.config⾥⾯的Configuration⼦节点connectionStrings<connectionStrings><add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=D:\asp\DataLogin\DataLogin\App_Data\UserData.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" /></connectionStrings>我们可以⾃⼰配置,但是在dataSource⾥⾯直接配置我觉得简单⼀点,也不⽤在记这些配置内容了。
下⾯我们就开始直接连接数据库了。
string username=Username.Text.Trim();string password = Password.Text.Trim()SqlDataReader dr;System.Data.SqlClient.SqlConnection conn = new SqlConnection();conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;//新建sqlCommand对象SqlCommand cmd = new SqlCommand();cmd.Connection = conn;mandText = "SELECT [pass] FROM [UserInf] WHERE name=@loginname";mandType = CommandType.StoredProcedure; //CommandType.Text;//添加查询参数对象,并给参数赋值SqlParameter para = new SqlParameter("@loginname", SqlDbType.NVarChar,50);para.Value = username;cmd.Parameters.Add(para);try{conn.Open();//SqlCommand Cmd = new SqlCommand();dr = cmd.ExecuteReader();// 将检索的记录⾏填充到DataReader对象中if (dr.Read()){if (dr.GetString(0).Trim() == password){// 登录成功后记下该⽤户登录名,以便后续功能使⽤Session.Add("username", username);Username.Text = "";Response.Write("恭喜你,你已登录成功!");}else{Response.Write("⽤户名或者密码错误!");}}else{Response.Write("对不起,⽤户不存在!");}}catch (SqlException sqlException){Response.Write(sqlException.Message); // 显⽰连接异常信息}finally{if (conn.State == ConnectionState.Open)conn.Close();}这种连接数据库登陆的⽅式最直接,但是也最不容易维护,接下来我们就⽤添加helper类的⽅式连接数据库。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。