Qt远程连接SQlServer数据库
怎样远程连接SQLServer2000数据库
怎样远程连接SQLServer2000数据库远程连接SQL Server 2000数据库是一种在不同计算机之间进行数据交互和共享的方式。
它为用户提供了便捷的远程访问数据库的能力,使得数据的管理和操作更加高效和灵活。
本文将介绍远程连接SQL Server 2000数据库的具体步骤和相关技巧。
一、概述SQL Server 2000是一种关系数据库管理系统,它广泛应用于企业和个人的数据管理和操作中。
远程连接SQL Server 2000数据库是指在不同的计算机上,通过网络连接,实现对数据库的访问和操作。
这种方式使得用户无需直接接触物理数据库服务器,可以在远程计算机上通过SQL Server客户端工具进行操作,极大地提高了工作效率和灵活性。
二、准备工作在开始远程连接SQL Server 2000数据库之前,需要确保以下几个条件得到满足:1. 确保数据库服务器已安装并已正确配置SQL Server 2000数据库,并正常运行。
2. 确保远程计算机网络连接稳定,并具备访问数据库服务器的权限。
3. 安装SQL Server 2000客户端工具,常见的有SQL Server Management Studio(SSMS)等。
三、远程连接配置1. 打开SQL Server Management Studio(或其他SQL Server客户端工具)。
2. 在连接服务器的对话框中,输入数据库服务器的名称或IP地址。
3. 在身份验证选项中,选择适当的身份验证方式,常见的有Windows身份验证和SQL Server身份验证。
根据具体情况选择,一般情况下可以选择Windows身份验证,使用操作系统登录凭证即可完成登录。
4. 单击“连接”按钮,等待连接成功。
四、远程操作与管理远程连接成功后,即可进行数据库的操作和管理。
以下是一些常见的远程操作与管理示例:1. 查询数据:使用SQL查询语言(如SELECT语句),可以从远程数据库中检索数据,实现数据的查询、筛选和排序等功能。
远程SQLSERVER服务器设置
远程SQLSERVER服务器设置远程连接SQL Server服务器是一种将客户端与服务器之间的网络连接扩展到远程位置的方法。
它允许远程用户通过网络连接到SQL Server数据库实例,并执行各种操作,如查询、插入、更新、删除等。
要设置远程连接SQL Server服务器,首先需要确保服务器和客户端之间的网络连接是可靠的。
以下是设置远程连接的步骤:1. 检查服务器的防火墙设置:SQL Server使用TCP/IP协议进行通信,因此需要确保服务器的防火墙允许传入的TCP/IP连接。
在SQLServer配置管理器中,选择"SQL Server Network Configuration",然后选择"Protocols for [Instance Name]"。
确保TCP/IP协议被启用,并检查TCP/IP的端口号是否被防火墙允许通过。
2. 配置SQL Server实例的网络协议:在SQL Server配置管理器中,选择"SQL Server Network Configuration",然后选择"Protocols for [Instance Name]"。
选择TCP/IP协议,右键点击选择"Properties"。
在"Protocol"选项卡中,确保TCP/IP协议已启用,并且配置正确,例如端口号和IP地址。
3. 启用SQL Server身份验证方式:在SQL Server Management Studio中,连接到SQL Server实例,右键点击选择"Properties"。
在"Security"选项卡中,选择"SQL Server and Windows Authentication mode",然后点击"OK"按钮。
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以上简单的介绍希望对你有点帮助!再此非常感谢那位来自南京的朋友的帮助!。
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建立连接。
如何远程连接SQLServer数据库的图文教程
如何远程连接SQLServer数据库的图⽂教程
⼀.设置客户端⽹络实⽤⼯具
点击“开始”-“程序”,在“Microsoft SQL Server”菜单中选择“客户端⽹络实⽤⼯具”。
在“别名”选项中点击“添加”。
在“服务器别名”中,填⼊您⽹站域名,在“⽹络库”区域中点击“TCP/IP”,在“连接参数”区域
取消“动态决定端⼝”,指定“端⼝号”为2433。
填写完毕后,点击“确定”按钮保存配置。
⼆.企业管理器的使⽤
点击“开始”-“程序”,在“Microsoft SQL Server”菜单中打开“企业管理器”。
在企业管理器中,右键单击“SQL Server组”,选择“新建SQL Server注册”。
此时会出现SQL Server属性窗⼝,在“服务器”中填⼊您⽹站的域名,选择“使⽤SQL Server⾝份验证”,“登录名”和“密码”分别填⼊主机开通邮件中的⽤户名和密码,然后点
击“确定”。
连接成功后,你会看到“SQL Server组”中多了⼀个名称为您⽹站域名的服务器。
此时,您就可以像操作本地SQL数据库⼀样管理⽹站数据库了。
注意事项
如果连接的时候出现超时错误,更改超时时间即可,⽅法是点击“⼯具”-“选项”。
在属性窗⼝中选择“⾼级”选项卡,将“登录超时”的数值设置为0。
如需要更多内容,可以参与学习SQL教程。
怎样远程连接SQL Server2000数据库
怎样远程连接SQL Server2000数据库远程连接 SQL Server 2000 数据库是一项重要的技术,它允许用户从不同的位置访问和管理数据库。
本文将介绍如何远程连接 SQL Server 2000 数据库,以及相关的配置和安全注意事项。
一、什么是远程连接SQL Server 2000数据库SQL Server 2000 是一种关系型数据库管理系统,主要用于数据存储和管理。
远程连接则是指通过网络连接到远程主机上运行的数据库服务器,以实现对数据库的访问和操作。
二、远程连接SQL Server 2000数据库的配置在远程连接SQL Server 2000 数据库之前,需要进行以下几项配置:1. 启动 SQL Server 2000 数据库服务器:确保数据库服务器已启动并正在运行,可以通过在服务器上运行 SQL Server 2000 程序来启动。
2. 配置网络协议:在 SQL Server 2000 管理工具中,打开 "SQL Server 网络工具",选择适当的网络协议(如 TCP/IP),并进行相应的配置。
3. 配置防火墙:如果您的计算机上有防火墙软件,需要打开相应的端口(默认是 1433)以允许远程连接请求通过。
4. 数据库和登录名配置:在 SQL Server 2000 管理工具中,确保数据库已创建并配置了相应的登录名和权限,以便远程用户可以访问数据库。
可以通过创建登录名、分配权限和设置密码来完成这些配置。
三、如何远程连接SQL Server 2000数据库远程连接 SQL Server 2000 数据库可以使用多种方式,下面介绍两种常见的方法:1. 使用 SQL Server Management Studio(SSMS):SSMS 是一款官方提供的管理工具,可以通过图形界面轻松地远程连接数据库。
打开SSMS,输入远程服务器的地址和登录凭据,选择相应的数据库,即可连接到远程数据库。
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.”。
本地数据库(SQLServer)远程连接服务器端服务器
本地数据库(SQLServer)远程连接服务器端服务器 本地数据库(SQL Server 2012)连接外⽹服务器的数据库,外⽹的服务器端需要做如下配置:1. ⾸先是要打开数据的配置管理⼯具2. 配置相关的客户端协议,开启TCP/IP3. 数据库默认的远程端⼝是 1433,但是不是安全的,可以⼿动更改端⼝,更待客户端协议的IP这⾥需要找到最下边的 IPAll,然后修改端⼝,修改之后,重启数据库服务----------------------------------------------------------------------------4.这⾥的配置做好之后,然后本地登录数据库,然后在数据库服务右键选择属性,然后选择【链接】,勾选允许远程5. 在这之后,继续在数据库服务右键,选择【注册】,注册⼀个数据库服务可以先测试,然后保存,测试成功,证明可以使⽤该账号远程登录了-------------------------6. 以上步骤完成之后,就需要修改防⽕墙的设置了,当然,如果是直接关闭了服务器的,就不需要配置了,但是⼀般来说,安全起见,服务器还是不要关闭防⽕墙。
(1). ⾸先是给防⽕墙添加端⼝(这⾥是你设置的服务器端⼝号,默认1433)打开控制⾯板--》Windows 防⽕墙-->⾼级设置-->⼊栈规则-->右键,新建规则-->选择端⼝-->设置特定本地端⼝号-->允许链接-->勾选所有的项-->设置名称-->完成.......(2).第⼀步完后,防⽕墙继续新建⼊栈规则,这次选择添加程序,添加 D:\Program Files\Microsoft SQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\sqlservr.exe这⾥的 sqlservr.exe 是在你安装数据库的⽂件夹⾥ 添加步骤和上⾯⼀样那么,通过以上的配置,我们就可以再本地访问外⽹的数据库了,只需输⼊相应的IP地址和端⼝号,登录名,密码就⾏这⾥需要注意的是数据库服务器格式: IP地址,端⼝号IP地址和端⼝号之间使⽤的 ',' 号分隔。
SQLServer 数据库开启远程连接设置
SQLServer 数据库开启远程连接设置SQLServer2008数据库开启远程连接 (2)SQLServer2005无法远程连接的解决方法 (16)一、为SQLServer2005启用远程连接 (16)二、启用SQLServerBrowser服务 (17)三、在Windows防火墙中为SQLServer2005创建例外 (17)四、在Windows防火墙中为SQLServerBrowser创建例外 (18)五、远程连接端口设置 (18)六、测试连接 (20)SQLSERVER服务器防火墙设置 (20)1. 打开Windows防火墙的端口 (20)2. 从其他计算机连接到数据库引擎 (21)3. 使用SQLServerBrowser服务进行连接 (21)4. 启动SQLServerBrowser服务的方法 (22)5. SQL2008 SQL Server Browser服务不能开启问题 (23)SQLServer2008数据库开启远程连接SQLServer2008默认是不允许远程连接的,sa帐户默认禁用的,如果想要在本地用SSMS连接远程服务器上的SQLServer2008,需要做两个部分的配置:1,SQLServerManagementStudioExpress(简写SSMS)2,SQLServer配置管理器/SQLServerConfigurationManager(简写SSCM)有两点要注意:1,2005的外围应用配置器在2008中换了地方;2,有些设置生效需要重启一下SQLServer。
step1:打开SSMS,用windows身份连接数据库,登录后,右键选择“属性”step2:左侧选择“安全性”,选中右侧的“SQLServer和Windows身份验证模式”以启用混合登录模式。
step3:选择“连接”,勾选“允许远程连接此服务器”,然后点“确定”step4:展开“安全性”->“登录名”->“sa”,右键选择“属性”。
在TSQL语句中访问远程数据库(openrowset、opendatasource、openquer
在T-SQL语句中访问远程数据库(openrowset/opendatasource/openquery)1、启用Ad Hoc Distributed Queries在使用openrowset/opendatasource前搜先要启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的启用Ad Hoc Distributed Queries的方法SQL Server 阻止了对组件'Ad Hoc Distributed Queries' 的STATEMENT'OpenRowset/OpenDatasource'的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。
系统管理员可以通过使用sp_configure 启用'Ad Hoc Distributed Queries'。
有关启用'Ad Hoc Distributed Queries' 的详细信息,请参阅SQL Server 联机丛书中的"外围应用配置器"。
启用Ad Hoc Distributed Queries的方法,执行下面的查询语句就可以了:exec sp_configure 'show advanced options',1reconfigureexec sp_configure 'Ad Hoc Distributed Queries',1reconfigure使用完毕后,记得一定要要关闭它,因为这是一个安全隐患,切记执行下面的SQL语句exec sp_configure 'Ad Hoc Distributed Queries',0reconfigureexec sp_configure 'show advanced options',0reconfigure2、使用示例--创建链接服务器exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址'exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名', '密码'--查询示例select * from ITSV.数据库名.dbo.表名--导入示例select * into 表from ITSV.数据库名.dbo.表名--以后不再使用时删除链接服务器exec sp_dropserver 'ITSV ', 'droplogins '--连接远程/局域网数据(openrowset/openquery/opendatasource)--1、openrowset--查询示例select * from openrowset( 'SQLOLEDB ', 'sql服务器名'; '用户名'; '密码',数据库名.dbo.表名)--生成本地表select * into 表from openrowset( 'SQLOLEDB ', 'sql服务器名'; '用户名'; '密码',数据库名.dbo.表名) --把本地表导入远程表insert openrowset( 'SQLOLEDB ', 'sql服务器名'; '用户名'; '密码',数据库名.dbo.表名)select *from 本地表update bset b.列A=a.列Afrom openrowset( 'SQLOLEDB ', 'sql服务器名'; '用户名'; '密码',数据库名.dbo.表名)as a inner join 本地表 bon a.column1=b.column1--openquery用法需要创建一个连接--首先创建一个连接创建链接服务器exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址'--查询select *FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名')--把本地表导入远程表insert openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名')select * from 本地表--更新本地表update bset b.列B=a.列BFROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名') as ainner join 本地表b on a.列A=b.列A--3、opendatasource/openrowsetSELECT *FROM opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码' ).--把本地表导入远程表insert opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码').数据库.dbo.表名select * from 本地表3、自己写的例子--openrowset使用OLEDB的一些例子select * from openrowset('SQLOLEDB','Server=(local);PWD=***;UID=sa;','select * from as tselect * from openrowset('SQLOLEDB','Server=(local);PWD=***;UID=sa;', as tselect * from openrowset('SQLOLEDB','Server=(local);Trusted_Connection=yes;', as tselect * from openrowset('SQLOLEDB','(local)';'sa';'***','select * from as tselect * from openrowset('SQLOLEDB','(local)';'sa';'***', as tselect * from openrowset('SQLOLEDB','(local)';'sa';'***','select school.id as id1,people.id as id2 from inner join on school.id=people.id') as t--openrowset使用SQLNCLI的一些例子(SQLNCLI在SqlServer2005以上才能使用)select * from openrowset('SQLNCLI','(local)';'sa';'***','select * from as tselect * from openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select * from as t select * from openrowset('SQLNCLI','Server=(local);UID=sa;PWD=***;','select * from as tselect * from openrowset('SQLNCLI','Server=(local);UID=sa;PWD=***;', as tselect * from openrowset('SQLNCLI','Server=(local);UID=sa;PWD=***;DataBase=TB','select * from--openrowset其他使用insert openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select name from where id=1') values('ghjkl')/*要不要where都一样,插入一行*/update openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select name from whereid=1') set name='kkkkkk'delete from openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select name from where id=1')--opendatasource使用SQLNCLI的一些例子select * from opendatasource('SQLNCLI','Server=(local);UID=sa;PWD=***;'). as tselect * from opendatasource('SQLNCLI','Server=(local);UID=sa;PWD=***;DataBase=TB'). as t--opendatasource使用OLEDB的例子select * from opendatasource('SQLOLEDB','Server=(local);Trusted_Connection=yes;'). as t--opendatasource其他使用insert opendatasource('SQLNCLI','Server=(local);Trusted_Connection=yes;'). values('ghjkl')/*要不要where都一样,插入一行*/update opendatasource('SQLNCLI','Server=(local);Trusted_Connection=yes;'). set name='kkkkkk' delete from opendatasource('SQLNCLI','Server=(local);Trusted_Connection=yes;'). where id=1--openquery使用OLEDB的一些例子exec sp_addlinkedserver 'ITSV', '', 'SQLOLEDB','(local)'exec sp_addlinkedsrvlogin 'ITSV', 'false',null, 'sa', '***'select * FROM openquery(ITSV, 'SELECT * FROM ')--openquery使用SQLNCLI的一些例子exec sp_addlinkedserver 'ITSVA', '', 'SQLNCLI','(local)'exec sp_addlinkedsrvlogin 'ITSVA', 'false',null, 'sa', '***'select * FROM openquery(ITSVA, 'SELECT * FROM ')--openquery其他使用insert openquery(ITSVA,'select name from where id=1') values('ghjkl')/*要不要where都一样,插入一行*/update openquery(ITSVA,'select name from where id=1') set name='kkkkkk'delete openquery(ITSVA,'select name from where id=1')4、总结可以看到SqlServer连接多服务器的方式有3种其中我个人认为openrowset最好,使用简单而且支持在连接时制定查询语句使用很灵活openquery也不错查询时也可以指定查询语句使用也很灵活,不过查询前要先用execsp_addlinkedserver和exec sp_addlinkedsrvlogin建立服务器和服务器连接稍显麻烦opendatasource稍显欠佳,他无法在连接时指定查询使用起来稍显笨拙另外还可以连接到远程Analysis服务器做MDX查询,再用T-Sql做嵌套查询,可见T-SQL的远程查询非常强大if ($ != jQuery) { $ = jQuery.noConflict(); } var isLogined = false; var cb_blogId = 56368; var cb_entryId = 1689321; var cb_blogApp = "OpenCoder"; var cb_blogUserGuid ="dc8c8375-b742-de11-9510-001cf0cd104b"; var cb_entryCreatedDate = '2010/3/18 21:07:00';。
远程连接局域网内的SQLServer的方法是什么
远程连接局域网内的SQL Server 的方法是什么局域网通常是分布在一个有限地理范围内的网络系统,一般所涉及的地理范围只有几公里。
局域网专用性非常强,具有比较稳定和规范的拓扑结构。
下面我们依次介绍如何来解决这三个最常见的连接错误。
一般说来,有以下几种可能性:1、SQL Server名称或IP地址拼写有误;2、服务器端网络配置有误;3、客户端网络配置有误。
要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。
首先,检查网络物理连接:ping <服务器IP地址>或者ping <服务器名称>如果 ping <服务器IP地址> 失败,说明物理连接有问题,这时候要检查硬件设备,如网卡、HUB、路由器等。
还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如ISA Server。
防火墙软件可能会屏蔽对 ping、telnet 等的响应,因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。
如果ping <服务器IP地址> 成功而 ping <服务器名称> 失败,则说明名字解析有问题,这时候要检查 DNS 服务是否正常。
有时候客户端和服务器不在同一个局域网里面,这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用HOSTS文件来进行名字解析,具体的方法是:1、使用记事本打开HOSTS文件(一般情况下位于C:\WINNT\system32\drivers\etc).2、添加一条IP地址与服务器名称的对应记录,如:172.168.10.24 myserver也可以在 SQL Server 的客户端网络实用工具里面进行配置,后面会有详细说明。
其次,使用 telnet 命令检查SQL Server服务器工作状态:telnet <服务器IP地址> 1433如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明 SQL Server 服务器工作正常,并且正在监听1433端口的TCP/IP 连接;如果命令返回"无法打开连接"的错误信息,则说明服务器端没有启动 SQL Server 服务,也可能服务器端没启用 TCP/IP 协议,或者服务器端没有在 SQL Server 默认的端口1433上监听。
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、保存并运行:保存所有代码,单击左边绿色三角形编译运行单击顺利运行弹出的窗体上的按钮,顺利查询出数据库记录!。
c++ qt sqlserver 例子
标题:利用C++ Qt编写与SQL Server交互的示例1. 简介C++是一种广泛使用的高级编程语言,而Qt则是一个跨评台的C++应用程序框架,提供了丰富的类库和工具,使得开发者能够轻松地创建各种跨评台应用程序。
SQL Server是微软推出的关系型数据库管理系统,被广泛应用于企业级应用程序中。
在本文中,我们将通过一个具体的例子,介绍如何利用C++语言和Qt 框架与SQL Server进行交互,实现数据的读取、写入和更新操作。
2. 准备工作在开始之前,我们需要做一些准备工作:1. 安装Qt开发环境2. 安装SQL Server数据库,并创建一个测试数据库3. 配置Qt与SQL Server的连接驱动程序3. 实现数据库连接在Qt中,我们可以利用QSqlDatabase类来实现与数据库的连接。
我们需要在代码中加载SQL Server的驱动程序,并指定连接的数据库名称、用户名和密码。
接下来,我们可以调用open()函数来建立与数据库的连接。
```cpp#include <QtSql>QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setHostName("localhost");db.setDatabaseName("testDB");db.setUserName("username");db.setPassword("password");if (db.open()) {qDebug() << "Database connected";} else {qDebug() << "Database NOT connected";}```4. 实现数据读取一旦与数据库成功建立了连接,我们就可以利用Qt提供的SQL查询类来执行数据库查询操作。
远程连接Sqlserver数据库
通常建议在查询分析器里做,因为默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是4秒,而查询分析器是15秒。
修改默认连接超时的方法:
企业管理器->工具->选项->在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡->连接设置->在 登录超时(秒) 后面的框里输入一个较大的数字
如telnet 202.114.100.100 1433
通常端口值是1433,因为1433是sql server 2000的对于Tcp/IP的默认侦听端口。如果有问题,通常这一步会出问题。通常的提示是“……无法打开连接,连接失败"。
如果这一步有问题,应该检查以下选项。
1 检查远程服务器是否启动了sql server 2000服务。如果没有,则启动。
事实上,如果默认端口被修改,也是可以的,但是在客户端做telnet测试时,写服务器端口号时必须与服务器配置的端口号保持一致。如果隐藏服务器复选框被勾选,则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接,但是Tcp/ip协议的默认端口将被隐式修改为2433,在客户端连接时必须作相应的改变。
netstat -a -n 或者是netstat -an,在结果列表里看是否有类似 tcp 127.0.0.1 1433 listening 的项。如果没有,则通常需要给sql server 2000打上至少sp3的补丁。其实在服务器端启动查询分析器,输入 select @@version 执行后可以看到版本号,版本号在8.0.2039以下的都需要打补丁。
查询分析器->工具->选项->连接->在 登录超时(秒) 后面的框里输入一个较大的数字
SQLSERVER 开启远程连接检配置说明
一、数据库开启远程访问1、打开数据库管理工具【SQL Server Management Studio】,选择windows身份验证连接2、选择连接的数据库,并点击【右键】,选择属性。
3、选择【安全性】,在服务器身份验证处选择【SQL Server 和Windows 身份验证模式(S)】,选择完成后,点击【确定】。
二、添加用户并设置权限1、创建新的登录名,点击安全性前面的【+】展开后,选择【登录名】,然后点击【右键】,再选择【新建登录名(N)】2、设置登录名与密码,设置【登录名】后,选择【SQL Server 身份验证】,然后设置密码。
取消强制【实施密码策略】。
3、数据库权限设置,选择【用户映射】,选择数据库【DiaoJuDiaoDaiSys】,再选择数据库角色成员身份【db_owner】和【public】,选择完成后,点击【确定】4、使用新创建的登录名登录,点击【连接】后,再点击【数据库引擎】身份验证选择【SQL Server 身份验证】,在登录名处输入创建的新的登录名【djdddj】,然后输入密码。
点击【连接】。
连接成功后,可以看到三、远程访问端口设置1、打开【SQL Server 配置管理器】2、开启TCP/IP,点击【SQL Server 网络配置】前面的【+】,选择【MSSQLSERVER 的协议】。
选择【TCP/IP】,点击【右键】,选择【开启】。
如果已经启用,表示已经开启TCP/IP。
开启后需要重新启动SQL Server 服务。
3、配置端口,【双击】【TCP/IP】启动侦听设置访问端口,默认为:1433.4、重启SQL Server 服务。
使用【SQL Server Management Studio】登录数据,选择数据库服务,点击【右键】,选择【重新启动】。
出现提示框,选择【是】。
四、防火墙放行1、进入控制版面搜索【防火墙】,选择高级设置。
2、开启允许访问的端口,选择【入站规则】后,点击右边的【新建规则】.添加过程如下列图点击【完成】后,可以看到在入站规则中出现我们添加的信息。
如何远程连接SQL Server数据库
服务端已配置完毕,只需要执行客户端配置里第五步即可远程登录SQLServer服务器。
首先安装Microsoft SQL Server 2005/2008。
服务端配置:第一步(SQL2005、SQL2008):开始-->程序-->Microsoft SQL Server 2008(或2005)-->配置工具-->SQL Server 配置管理器-->SQL Server网络配置-->MSSQLSERVER(这个名称以具体实例名为准) 的协议-->TCP/IP-->右键-->启用。
第二步:SQL2005:开始-->程序-->Microsoft SQL Server 2005-->配置工具-->SQL Server 2005外围应用配置器-->服务和连接的外围应用配置器-->Database Engine -->远程连接,选择本地连接和远程连接并选上同时使用Tcp/Ip和named pipes。
(附:如何配置SQL Server 2005 以允许远程连接:SQL2008:打开SQL Server Management Studio-->在左边[对象资源管理器]中选择第一项(主数据库引擎)-->右键-->方面-->在方面的下拉列表中选择[外围应用配置器]-->将RemoteDacEnable 置为True.(这一步很关键)Express:如果XP有开防火墙,在例外里面要加入以下两个程序:C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/Binn/sqlservr.exe,C:/Program Files/Microsoft SQL Server/90/Shared/sqlbrowser.exe第三步:开始-->程序-->Microsoft SQL Server 2008(或2005)-->配置工具-->SQL Server 配置管理器-->SQL Server 服务-->右击SQL Server(MSSQLSERVER) (注:括号内以具体实例名为准)-->重新启动第四步:服务器端开启sa用户。
SqlServer数据库远程连接案例教程
SqlServer数据库远程连接案例教程
⼀、⾝份验证配置
在sqlserver服务端电脑打开SqlServer Managerment Studio管理⼯具,⾸先通过Windows⾝份验证登录sqlserver
登录成功之后,右键打开属性,在安全性选项卡勾选sql server和windows⾝份认证模式,在连接选项卡勾选允许远程连接到此服务器,如下图:
然后点击安全性-登录名,右击sa点击属性,设置sa账户密码,在状态选项卡中选择授予和启⽤
⼆、sqlserver开启1433端⼝
右击计算机,打开管理,如图:
找到服务和应⽤程序,然后配置sqlserver⽹络协议,启⽤TCP/IP,右击属性,如图:
将IP1的TCP端⼝设置为1433,并启⽤,如图
将IPALL的TCP端⼝也设置为1433,如图
注意
如果sqlserver在阿⾥云服务器上,还得配置下安全组规则,开放1433端⼝
三、远程登录
输⼊远程服务ip地址或者域名:1433/实例名
这⾥可以省略端⼝和实例名,如图:
到此这篇关于SqlServer数据库远程连接案例教程的⽂章就介绍到这了,更多相关SqlServer数据库远程连接内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
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);}。
QT连接SQLServerODBC
QT连接S QL Se rver(ODBC)更多QT提供了对多种数据库的访问支持,对SQ L Ser ver也可以通过OD BC来进行访问。
要想顺利访问SQL S erver。
首先要保证以下几点:1. QT编译时已经编译了QtSq l2.编译了OD BC插件。
可以通过confi gure-plug in-sq l-odb c来保证,也可以单独编译~\s rc\pl ugins\sqld river s\odb cqma ke -t vcli b odb c.proqma kenm ake// 已测试的编译过程qma ke.ex e odb c.pro -r -specwin32-g++nmake (或mi ngw32-make)(重新编译前先用nmake dist clean清理旧文件)编译后,在~\plugi ns\sq ldriv ers\下应该有qs qlodb cd4.d ll(de bug)或qsqlo dbc4.dll此时,可以用下面的程序,测试一下你的QT目前支持哪些数据库访问。
#i nclud e <QA pplic ation>#i nclud e <QS qlDat abase>#i nclud e <QS tring List>#in clude <QDe bug>in t mai n(int argc, cha r* ar gv[]) {Q Appli catio n app(argc, arg v);qDe bug() << "Avail abledrive rs:";QSt ringL ist d river s = Q SqlDa tabas e::dr ivers();forea ch(QS tring driv er, d river s)q Debug() << "\t" << d river;QSqlD ataba se db = QS qlDat abase::add Datab ase("QODBC");qDebu g() << "OD BC dr ivervalid?" << db.i sVali d();}如果输出中有Avail abledrive rs:"QSQLI TE""QODBC4""Q ODBC"ODBC driv er va lid?true就说明已经可以成功支持ODBC了。
Qt连接sqlserver数据库遇到的问题
Qt连接sqlserver数据库遇到的问题在QT中使⽤addDataBase添加⼀个数据库连接,其中第⼀个参数应该填⼊使⽤数据库驱动的类型,如QMYSQL、QSQLLITE、QSQLPSSQL等。
1. QSqlDatabase QSqlDatabase::addDatabase(const QString & type, const QString & connectionName = QLatin1String( defaultConnection ))第⼀个参数指定了应⽤程序使⽤哪⼀种数据库驱动访问数据库。
Qt⾃⼰建⽴了不同数据库的驱动,这些驱动会调⽤相应DBMS的编程接⼝对数据库进⾏操作。
下⾯给出QtSql模块定义的驱动类型,与对应的DBMS。
QDB2IBM DbQIBASE Borland InterBaseQMYSQL MYSQLQOCI甲⾻⽂公司QODBC ODBC(包括微软公司的Server服务器)QPSQL PostgreSQL的7.3版以及更⾼版QSQLITE QLite第三版QSQLITE2QLIte2第⼆版QTDS sybase⾃适应服务器由图可以看出其中只有QODBC⽐较特殊,QODBC驱动调⽤ODBC驱动接⼝,ODBC对数据库的操作不依赖任何的DBMS,不直接于DBMS 打交道,它将所有的数据库操作交给对应DBMS驱动程序去完成。
因此在使⽤QODBC时候有两种连接⽅式:DNS字符串1. QString dsn = "DRIVER={SQL SERVER};SERVER=58.67.161.109;DATABASE=RDBS;UID=RDBS_USER;PWD=RDBS_USER_7010387;";2. //还要注意这⾥的⽤户名要有创建表的权限,不然创建下⾯的表student会不成功。
3. db.setDatabaseName(dsn); //数据库名 db.setUserName("RDBS_USER");//登录名,我再dsn⾥设置UID和PWD后,就不需要设置了4. if(!db.open ())5. {6. QSqlError error = stError();7. return false;8. }⼿动设置ODBC数据源控制⾯板->系统和安全->管理⼯具->数据源(ODBC)代码:QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");db.setDatabaseName("testdsn");db.setUserName("sa");db.setPassword("scada");三、下⾯是ODBC和OLEDB的连接字符串写法:1、ODBC连接字符串//适合数据库类型连接⽅式access"Driver={microsoft access driver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;"dBase"Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;"oracle"Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;"MSSQL server"Driver={sql server};server=servername;database=dbname;uid=sa;pwd=pass;"MS text"Driver={microsoft text driver(*.txt; *.csv)};dbq=-----;extensions=asc,csv,tab,txt;Persist SecurityInfo=false;" Visual Foxpro"Driver={microsoft Visual Foxpro driver};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={PostgreSQL ANSI};server=127.0.0.1;uid=admin;pwd=pass;database=databaseName"。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.arg(sDbNm)
.arg(sUserNm)
.arg(sPwd);
db.setDatabaseName(dsn);
query1.clear();
query1.prepare("select top 1 ID from SQL_2000 order by ID desc");
bool a = query1.exec();
int id;
.arg(sDbNm)
.arg(sUserNm)
.arg(sPwd);
db.setDatabaseName(dsn);
/*连接sql 2000*/
query3.prepare("select * from SQL_2000 where Id=1");
bool c = query3.exec();
if (c)
{
qDebug() << "select data success!";
qDebug() <<"error_SqlServer:\n" << stError().text();
}
db.close();
}
二:安装。
参考/mingxia_sui/article/details/7723978(安装图解)
QString dsn = QString("Driver={sql server};SERVER=%1;PORT=%2;DATABASE=%3;UID=%4;PWD=%5;")
.arg(sIp)
.arg(iPort)
解决方法:
安装补丁(我的版本对应sp4)
打补丁的过程中出现问题:不能打开要写入的文件C:\WINDOWS\system32\ntwdblib.dll。
重启还是不行,我就把sp4安装包中的ntwdblib.dll直接拷贝到C:\WINDOWS\system32中。
query2.bindValue(4, sPwd);
query2.bindValue(5, sDbType);
query2.bindValue(6, sDbNm);
/*查询数据*/
QSqlQuery query3 = QSqlQuery(db);
while(query3.next())
{
qDebug() << query3.value(0);
qDebug() << query3.value(1);
qDebug() << query3.value(2).toInt();
query4.prepare("delete from SQL_2000 where Id=1");
bool d = query4.exec();
if (d)
{
qDebug() << "delete data success!";
{
db = QSqlDatabase::addDatabase("QODBC");
QString dsn = QString("Driver={sql server};SERVER=%1;PORT=%2;DATABASE=%3;UID=%4;PWD=%5;")
.arg(sIp)
/*插入数据*/
QSqlQuery query2 = QSqlQuery(db);
QString sq1 = QObject::tr("insert into SQL_2000(Id,Ip,Port,UserName,Password,DbType,DbName)"
}
query2.bindValue(0, id+1);
query2.bindValue(1, sIp);
query2.bindVal sUserNm);
if (a)
{
while(query1.next())
{
id = query1.value(0).toInt();
}
}
*/
void MainDialog::connectSql(QString sIp, int iPort, QString sDbNm, QString sUserNm, QString sPwd)
{
db = QSqlDatabase::addDatabase("QODBC");
[cpp] view plaincopyprint?
/**连接sql server数据库
*数据库名:abc
*表名:SQL_2000
*用户名:sa
*密码:123
*端口号:(默认)1433
*/
void MainDialog::connectSql(QString sIp, int iPort, QString sDbNm, QString sUserNm, QString sPwd)
Qt远程连接SQlServer数据库
分类: Qt 数据库 2012-07-18 17:04 267人阅读 评论(0) 收藏 举报
一:代码。
/**连接sql server数据库
*数据库名:abc
*表名:SQL_2000
*用户名:sa
*密码:123
*端口号:(默认)1433
}
else
{
qDebug() << stError().text().data();
}
}
else
{
QMessageBox::information(this, tr("提示"), tr("Sql Server数据库连接失败!"), tr("确定"));
QSqlQuery query1 = QSqlQuery(db);
query1.clear();
query1.prepare("select top 1 ID from SQL_2000 order by ID desc");
bool a = query1.exec();
"values (?, ?, ?, ?, ?, ?, ?)");
int id;
if (a)
{
while(query1.next())
{
id = query1.value(0).toInt();
}
通过/u/20100429/10/586ed537-0a66-48ac-97d6-e662e5199339.html对比,我发现问题:
服务器没有在1433端口侦听。
(测试方法:在dos下输入netstat -a -n或者netstat -an;结果:找不到tcp 127.0.0.1 1433 listening的项)
}
/*插入数据*/
QSqlQuery query2 = QSqlQuery(db);
QString sq1 = QObject::tr("insert into SQL_2000(Id,Ip,Port,UserName,Password,DbType,DbName)"
/*连接sql 2000*/
bool r = db.open();
if (r)
{
qDebug() << "SQL Server 2000 Connect OK!";
/* 计算当前表中id*/
再试telnet 127.0.0.1 1433,居然连接上了。
网卡设置:端口没被侦听,也可能是网卡的问题。
本地连接--->属性--->Internet协议(TCP/IP)--->属性--->高级--->选项--->属性--->全部允许TCP端口。
bool r = db.open();
if (r)
{
qDebug() << "SQL Server 2000 Connect OK!";
/* 计算当前表中id*/
QSqlQuery query1 = QSqlQuery(db);
三:连接过程遇到的问题。
问题:"[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝 [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). [Microsoft][ODBC SQL Server Driver]无效的连接字符串属性 QODBC3: Unable to connect"
}
}
else
{
qDebug() << stError().text().data();
}
/*删除数据*/
QSqlQuery query4 = QSqlQuery(db);
"values (?, ?, ?, ?, ?, ?, ?)");
bool b = query2.prepare(sq1);
if(b)
{
qDebug() << "insert data success!";