SQL Server连接字符串

SQL Server连接字符串
SQL Server连接字符串

连接字符串中常用的声明有:

服务器声明Data Source、Server和Addr等。

数据库声明Initial Catalog和DataBase等。

集成Windows账号的安全性声明Integrated Security和Trusted_Connection等。

使用数据库账号的安全性声明User ID和Password等。

对于访问数据库的账号来说,通常我们在一些参考资料上看到https://www.360docs.net/doc/c014078395.html,的字符串连接往往有如下写法:

复制代码代码如下:

string ConnStr = "server = localhost;

user id = sa; password = xxx; database = northwind";

对于集成Windows安全性的账号来说,其连接字符串写法一般如下:

复制代码代码如下:

string ConnStr = "server = localhost;

integrated security = sspi; database = northwind";

或string ConnStr = "server = localhost;

trusted_connection = yes; database = northwind";

使用Windows集成的安全性验证在访问数据库时具有很多优势:安全性更高、访问速度更快、减少重新设计安全架构的工作、可以硬编码连接字符串等,还是很值得使用的。

SQL Native Client ODBC Driver

标准安全连接

复制代码代码如下:Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

您是否在使用SQL Server 2005 Express?请在“Server”选项使用连接表达式“主机名称\SQLEXPRESS”。

受信的连接

复制代码代码如下:Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;

"Integrated Security=SSPI" 与"Trusted_Connection=yes" 是相同的。

连接到一个SQL Server实例

指定服务器实例的表达式和其他SQL Server的连接字符串相同。

Driver={SQL Native Client};Server=myServerName\theInstanceName;Database=myDataBase;Trusted_Connection=ye s;

指定用户名和密码

oConn.Properties("Prompt") = adPromptAlways

Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;

使用MARS (multiple active result sets)

Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;MARS_Conn ection=yes;

"MultipleActiveResultSets=true"与MARS_Connection=yes"是相同的。

使用https://www.360docs.net/doc/c014078395.html, 2.0作为MARS的模块。MARS不支持https://www.360docs.net/doc/c014078395.html, 1.0和https://www.360docs.net/doc/c014078395.html, 1.1。验证网络数据

Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;Encrypt=yes;

使用附加本地数据库文件的方式连接到本地SQL Server Express实例

Driver={SQL Native Client};Server=.\SQLExpress;AttachDbFilename=c:\asd\qwe\mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;

为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。

使用附加本地数据文件夹中的数据库文件的方式连接到本地SQL Server Express实例

Driver={SQL Native Client};Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;

Database=dbname;Trusted_Connection=Yes;

为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。

数据库镜像

Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;

SQL Native Client OLE DB Provider

标准连接

Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=m yPassword;

您是否在使用SQL Server 2005 Express?请在“Server”选项使用连接表达式“主机名称\SQLEXPRESS”。

受信的连接

Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes; "Integrated Security=SSPI"与"Trusted_Connection=yes"相同

连接到SQL Server实例

指定服务器实例的表达式和其他SQL Server的连接字符串相同。

Provider=SQLNCLI;Server=myServerName\theInstanceName;Database=myDataBase;Trusted_C onnection=yes;

使用帐号和密码

oConn.Properties("Prompt") = adPromptAlways

oConn.Open "Provider=SQLNCLI;Server=myServerAddress;DataBase=myDataBase;

使用MARS (multiple active result sets)

Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes; MarsConn=yes;

"MultipleActiveResultSets=true"和"MARS_Connection=yes"是相同的。

使用https://www.360docs.net/doc/c014078395.html, 2.0作为MARS的模块。MARS不支持https://www.360docs.net/doc/c014078395.html, 1.0和https://www.360docs.net/doc/c014078395.html, 1.1。验证网络数据

Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes; Encrypt=yes;

使用附加本地数据库文件的方式连接到本地SQL Server Express实例

Provider=SQLNCLI;Server=.\SQLExpress;AttachDbFilename=c:\asd\qwe\mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;

为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。

使用附加本地数据文件夹中的数据库文件的方式连接到本地SQL Server Express实例

Provider=SQLNCLI;Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;

为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。

数据库镜像

Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;

SqlConnection (.NET)

标准连接

Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

使用serverName\instanceName作为数据源可以指定SQL Server实例。

您是否在使用SQL Server 2005 Express?请在“Server”选项使用连接表达式“主机名称\SQLEXPRESS”。

Standard Security alternative syntax

Server=myServerAddress;Database=myDataBase;User

ID=myUsername;Password=myPassword;Trusted_Connection=False;

受信任的连接

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

Trusted Connection alternative syntax

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

连接到一个SQL Server的实例

指定服务器实例的表达式和其他SQL Server的连接字符串相同。

Server=myServerName\theInstanceName;Database=myDataBase;Trusted_Connection=True;

来自WinCE设备的安全连接

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;User ID=myDomain\myUsername;Password=myPassword;

仅能用于CE设备。

带有IP地址的连接

Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;

使用MARS (multiple active result sets)

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;MultipleActiveResul tSets=true;

使用https://www.360docs.net/doc/c014078395.html, 2.0作为MARS的模块。MARS不支持https://www.360docs.net/doc/c014078395.html, 1.0和https://www.360docs.net/doc/c014078395.html, 1.1。

使用附加本地数据库文件的方式连接到本地SQL Server Express实例

Server=.\SQLExpress;AttachDbFilename=c:\asd\qwe\mydbfile.mdf;Database=dbname;Trusted_C onnection=Yes;

为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。

使用附加本地数据文件夹中的数据库文件的方式连接到本地SQL Server Express实例

Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;

Database=dbname;Trusted_Connection=Yes;

为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。

使用在SQL Server Express实例上的用户实例

Data Source=.\SQLExpress;Integrated Security=true;AttachDbFilename=|DataDirectory|\mydb.mdf;User Instance=true;

数据库镜像

Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;

Asynchronous processing

Server=myServerAddress;Database=myDataBase;Integrated Security=True;Asynchronous Processing=True;

详细出处参考:https://www.360docs.net/doc/c014078395.html,/article/23066.htm

QT操作数据库 学习基础

QT操作数据库学习基础 QT操作数据库学习基础是本文要介绍的内容,对于数据库相信友们有所接触,那么先来看本文。 一.数据库操作 1.MySql驱动编译 在windows系统中,我们在mingw,MySql5和Qt4的环境中编译MySql驱动主要有以下几个步骤: (1)下载 https://www.360docs.net/doc/c014078395.html,/download/mingw-utils-0.3.tar.gz ;(2)将mingw-utils-0.3.tar.gz解压缩,将bin目录下的reimp 工具复制到mingw目录下的bin 里,如果Dev-C++就复制到C:\Dev-Cpp\bin目录下 (3)将MySql安装目录下的include和lib目录拷贝到没有空格的路径下,比如C: \mysql下; (4)打开Qt Command Prompt,分别执行以下命令: cd c:\mysql\lib\opt reimp -d libmysql.lib dlltool -k -d libmysql.def -l libmysql.a 这样在c:\mysql\lib\opt目录下就会生成一个libmysql.a 文件; (5)接下来执行以下命令:cd %QTDIR%\src\plugins\sqldrivers\mysql qmake -o Makefile

"INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=C :\MYSQL\LIB\OPT\LIBMYSQL.a" mysql.pro 找到%QTDIR%\src\plugins\sqldrivers\mysql\下的Makefile.release 和Makefile.debug文件,去掉-llibmysql 项再make编译,这下便会在%QTDIR%\plugins\sqldrivers目录下面生成libqsqlmysql.a, qsqlmysql.dll这两个文件,然后在程式的.pro文件中添加QT+=sql并在程式开头包含#include 就能操作数据库了。 2.完全解决数据库存储中文和Qt程式显示数据库中文及中文字符串的问题 (1)数据库和表及表里的字符相关字段(varchar, char, text 等)都要使用gbk_chinese_ci这种方式,不这样做也能,但这样做,会省非常多麻烦。 (2)重新编译Qt的MySQL驱动,需要修改src / sql / drivers / mysql / qsql_mysql.cpp文件。要修改的部分如下:第一百零八行的codec函数static QTextCodec* codec(MYSQL* mysql) { return QTextCodec::codecForName("GBK");//增加部分#if MYSQL_VERSION_ID >= 32321 QTextCodec* heuristicCodec = QTextCodec :: codecForName ( mysql_character_set_name ( mysql ) ); if (heuristicCodec) return heuristicCodec; #endif

SQLServer(多语句表值函数代码)

SQLServer(多语句表值函数代码) 代码如下: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go CREATE FUNCTION [dbo].[ufnGetContactInformation](@ContactID int) RETURNS @retContactInformation TABLE ( -- Columns returned by the function [ContactID] int PRIMARY KEY NOT NULL, [FirstName] [nvarchar](50) NULL, [LastName] [nvarchar](50) NULL, [JobTitle] [nvarchar](50) NULL, [ContactType] [nvarchar](50) NULL ) AS -- Returns the first name, last name, job title and contact type for the specified contact. BEGIN

DECLARE @FirstName [nvarchar](50), @LastName [nvarchar](50), @JobTitle [nvarchar](50), @ContactType [nvarchar](50); -- Get common contact information SELECT @ContactID = ContactID, @FirstName = FirstName, @LastName = LastName FROM [Person].[Contact] WHERE [ContactID] = @ContactID; SET @JobTitle = CASE -- Check for employee WHEN EXISTS(SELECT * FROM [HumanResources].[Employee] e WHERE e.[ContactID] = @ContactID) THEN (SELECT [Title] FROM [HumanResources].[Employee] WHERE [ContactID] = @ContactID) -- Check for vendor

SQLSERVER操作命令

SQLSERVER数据库操作 ******操作前,请确定SQL的服务已经开启******** 一:登录进入sql数据库 1、开始---所有程序---Microsoft SQL Server 2005---SQL Server Management Studio Express 2、此时出现“连接到服务器”的对话框, “服务器名称”设置为SQL数据库所在机器的IP地址 “身份验证”设置为SQL Server身份验证或者Windows 身份验证 填写登录名和密码后,点击“连接”按钮,即可进入到SQL数据库操作界面。 二:新建数据库 登录进去后,右击“数据库”,选择—“新建数据库” 设置数据库名称,在下面的选项卡中还可以设置数据库的初始大小,自动增长,路径。 点击确定,一个数据库就建好了。 三:如何备份的数据库文件。 登录进入后,右击相应的需要备份数据库----选择“任务” 目标下的备份到,点击“添加”按钮可以设置备份数据库保存的路径。 四:如何还原备份的数据库文件。(以本地机器为例子) 1、设置服务器名称,点击右边的下拉框的三角,选择“浏览更多…”。 此时出现查找服务器对话框,选择“本地服务器”---点开“数据库引擎”前面 的三角---选中出现的服务器名称—确定。 (注:可以在“网络服务器”选项卡中设置网络服务器) 2、设置身份验证,选择为“windows身份验证” 3、点击连接按钮,进入数据库管理页面 4、右击“数据库”,选择“还原数据库”,出现还原数据库的对话框 还原的目标----目标数据库,这里设置数据库的名字 还原的源----选择“源设备”,在弹出的对话框中点击“添加”按钮,找到所备 份的数据库文件,确定。 5、此时,在还原数据库对话框中会出现所还原的数据库的信息。在前面选中所需还 原的数据库。确定。 6、为刚刚还原的数据库设置相应的用户。 a点开“安全性”---右击“登录名”---新建登录名 b 设置登录名(假如为admin),并设置为SQL Server身份验证,输入密码,去除 “强制实施密码策略”前的勾。 C 找到导入的数据库,右击此数据库----选择“属性”,在选择页中,点击“文件” 设置所有者,点击右边的按钮,选择“浏览”,找到相应的用户(如admin)。确 定。。 7、此时重新以admin的身份进入,就可操作相应的数据库。

qt数据库用户接口

1.QSqlQueryModel *model = new QSqlQueryModel(); 2.model->setQuery("SELECT table_https://www.360docs.net/doc/c014078395.html,er_id, table_group.group_name FROM table_group," 3."table_user WHERE table_group.group_id=table_user.group_id"); 4. 5.for(int i = 0; i < model->rowCount(); i++) 6.{ 7.qDebug() << model->record(i).value("user_id").toString(); 8.qDebug() << model->record(i).value("group_name").toString(); 9.} 1.sqlite3可以有多种多表查询方法,比如 select (select * from table2) from table1 where xxx=xxx;

1.select table1.abc from table1,table2 where table1.xxx=table 2.xxx; 1.select table1.abc from table1 inner join table2 on table1.xxx=table 2.xxx; 1.QSqlTableModel tablemodel; //单表查询 2.tablemodel.setTable("table_user"); //绑定表 3.tablemodel.setFilter("group_id=1"); //设置查询条件 4.tablemodel.select(); //查询 5.for(int i = 0; i < tablemodel.rowCount(); i++) 6.{ 7.qDebug() << tablemodel.record(i).value(1).toString(); 8.}

QT数据库操作

二十一、Qt数据库(一)简介(原创) 2010-03-02 12:03 声明:本文原创于yafeilinux的百度博客,https://www.360docs.net/doc/c014078395.html,/yafeilinux 转载请注明出处。 从今天开始我们学习Qt数据库编程的内容。 先说明:我们以后使用现在最新的基于Qt 4.6.2的Qt Creator 1.3.1 Windows 版本,该版本是2010年2月17日发布的。 数据库几乎是每个较大的软件所必须应用的,而在Qt中也使用QtSql模块实现了对数据库的完美支持。我们在Qt Creator的帮助中查找QtSql Module,其内容如下图: 可以看到这个模块是一组类的集合,使用这个模块我们需要加入头文件 #include ,而在工程文件中需要加入一行代码:QT += sql 这里每个类的作用在后面都有简单的介绍,你也可以进入其中查看其详细内容。下面我们先简单的说一下QSqlDatabase类和QSqlQuery类。 QSqlDatabase类实现了数据库连接的操作,现在Qt支持的数据库类型有如下几种:

而现在我们使用的免费的Qt只提供了SQLite和ODBC数据库的驱动(我们可以在Qt Creator安装目录下的qt\plugins\sqldrivers文件夹下查看),而其他数据库的驱动需要我们自己添加。SQLite是一个小巧的嵌入式数据库,关于它的介绍你可以自己在网上查找。 QSqlQuery类用来执行SQL语句。(关于SQL语句:在我的教程中只会出现很简单的SQL语句,你没有相关知识也可以看懂,但是如果想进行深入学习,就需要自己学习相关知识了。) 下面我们就先利用这两个类来实现最简单的数据库程序,其他的类我们会在以后的教程中逐个学习到。 1.新建Qt控制台工程。

SQLSERVER数据库、表的创建及SQL语句命令

SQLSERVER数据库、表的创建及SQL语句命令 SQLSERVER数据库,安装、备份、还原等问题: 一、存在已安装了sql server 2000,或2005等数据库,再次安装2008,会出现的问题 1、卸载原来的sql server 2000、2005,然后再安装sql server 2008,否则经常sql server服务启动不了 2、sql server服务启动失败,解决方法: 进入sql server configure manager,点开Sql server 网络配置(非sql native client 配置),点sqlzhh(我sqlserver 的名字)协议,将VIA协议禁用。再启动Sql Server服务,成功 如图: 二、在第一次安装SQLSERVER2008结束后,查看安装过程明细,描述中有较多项插件或程度,显示安装失败。 解决方法:

1、重新启动安装程度setup.exe,选择进行修复安装,至完成即可。 三、先创建数据库XXX,再进行还原数据库时,选择好备份文件XXX.bak,确定后进行还原,会报如下图的错误。 解决方法: 选择好备份数据库文件后,再进入“选项”中,勾选“覆盖现在数据库”即可。

四、查看数据库版本的命令:select @@version 在数据库中,点击“新建查询”,然后输入命令,执行结果如下 五、数据库定义及操作命令: 按照数据结构来组织、存储和管理数据的仓库。由表、关系以及操作对象组成,把数据存放在数据表中。 1、修改数据库密码的命令: EXEC sp_password NULL, '你的新密码', 'sa' sp_password Null,'sa','sa'

SQLSERVER函数大全

SQL SERVER函数大全 SQL SERVER命令大全 SQLServer和Oracle的常用函数对比 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S:select ceiling(-1.001) value O:select ceil(-1.001) value from dual 3.取整(小) S:select floor(-1.001) value O:select floor(-1.001) value from dual 4.取整(截取) S:select cast(-1.002 as int) value O:select trunc(-1.002) value from dual 5.四舍五入 S:select round(1.23456,4) value 1.23460 O:select round(1.23456,4) value from dual 1.2346 6.e为底的幂 S:select Exp(1) value 2.7182818284590451 O:select Exp(1) value from dual 2.71828182 7.取e为底的对数 S:select log(2.7182818284590451) value 1 O:select ln(2.7182818284590451) value from dual; 1 8.取10为底对数 S:select log10(10) value 1 O:select log(10,10) value from dual; 1 9.取平方 S:select SQUARE(4) value 16 O:select power(4,2) value from dual 16

Qt数据库

1.在SQL语句中使用变量。 我们先看下面的一个例子,将“查询”按钮的槽函数更改如下: void Widget::on_pushButton_clicked() { QSqlQuery query; query.prepare(“insert into student (id, name) ” “values (:id, :name)”); query.bindValue(0, 5); query.bindValue(1, “sixth”); query.exec(); //下面输出最后一条记录 query.exec(“select * from student”); https://www.360docs.net/doc/c014078395.html,st(); int id = query.value(0).toInt(); QString name = query.value(1).toString(); qDebug() << id << name; } 运行效果如下: 可以看到,在student表的最后又添加了一条记录。在上面的程序中,我们先使用了prepare()函数,在其中利用了“:id”和“:name”来代替具体的数据,而后又利用bindValue()函数给id和name两个属性赋值,这称为绑定操作。其中编号0和1分别代表“:id”和“:name”,就是说按照prepare()函数中出现的属性从左到右编号,最左边是0 。这里的“:id”和“:name”,叫做占位符,这是ODBC数据库的表示方法,还有一种Oracle的表示方法就是全部用“?”号。如下: query.prepare(“insert into student (id, name) ” “values (?, ?)”); query.bindValue(0, 5); query.bindValue(1, “sixth”); query.exec();

易语言操作SQLServer数据库全过程

易语言操作SQL Server 数据库全过程 最近看到很多初学者在问在易语言中如何操作SQL Serve以外部数据库,也有人提出想要个全面的操作过程,为了让大家能够尽快上手,我给大家简单介绍一下操作SQL的过程,希望能起到抛砖引玉的作用。 由于我本身工作业比较忙,就以我目前做的一个软件的部份内容列给大家简单讲讲吧,高手就不要笑话了,只是针对初学者 第步,首先需要建立一个数据库: 以建立一个员工表为例,各字段如下 3 员工ID int 4 0 0 登陆帐号nvarchar 30 1 0 密码nvarchar 15 1 0 所属部门nvarchar 30 1 0 姓名nvarchar 10 1 0 性别nvarchar 2 1 0 年龄nvarchar 10 1 0 当前职务nvarchar 10 1 0 级别nvarchar 10 1 0 出生日期nvarchar 40 1 0 专业nvarchar 10 1 0 学历nvarchar 8 1 0 婚姻状况nvarchar 4 1 0 身份证号nvarchar 17 1 0 籍贯nvarchar 50 1 0 毕业院校nvarchar 50 1 0 兴趣爱好nvarchar 600 1 0 电话nvarchar 11 1 0 家庭成员nvarchar 20 1 0 工作经历nvarchar 600 1 0 销售行业经验nvarchar 600 1 0 离职原因nvarchar 600 1 0 升迁记录nvarchar 600 1 0 调岗记录 打+ -rd nvarchar 600 1 0 特殊贡献nvarchar 600 1 0 奖励记录nvarchar 600 1 0 处罚记录nvarchar 600 1 0 同事关系nvarchar 4 1 0 企业忠诚度nvarchar 4 1 0 入司日期nvarchar 30 1 0 在职状态nvarchar 4 1 0 上级评语nvarchar 600 1 0 最后登陆时间nvarchar 20 1 0 登陆次数nvarchar 50 1 0 照片image 16 1 一般我习惯用nvarchar,因为这是可变长的的非Unicode数据,最大长度为8000个字符,您可以根

QT4连接数据库的各种方法

QT4连接数据库的各种方法 驱动编译数据库连接SQL执行操作SQL执行操作使用SQL 使用SQLModel类Model类数据呈现视图中数据呈现窗体中驱动编译(ODBC)这里要提及两个数据库驱动,分别是ODBC和OCI Windows操作系统中编译ODBC驱动:Windows操作系统中编译ODBC驱动:执行以下命令,会在%QTDIR%\plugins\sqldrivers目录下面生成执行以下命令,会在%QTDIR%\plugins\sqldrivers目录下面生成qsqlodbc4.dll。qsqlodbc4.dll。 cd %QTDIR%\src\plugins\sqldrivers\odbc %QTDIR%\src\plugins\sqldrivers\ qmake -o Makefile odbc.pro mingw32-make mingw32 Linux(Unix)操作系统下编译ODBC驱动这里假定ODBC安装在/usr/local/unixODBC。下线ODBC驱动。这里假定ODBC安装在/usr/local/unixODBC。 执行以下命令,会在$QTDIR/plugins/sqldrivers目录下面生成qsqlodbc4.a。执行以下命令,会在$QTDIR/plugins/sqldrivers目录下面生成qsqlodbc4.a。 cd $QTDIR/src/plugins/sqldrivers/odbc qmake "INCLUDEPATH+=/usr/local/unixODBC/include" "LIBS+="LIBS+=L/usr/local/unixODBC/lib -lodbc" make 驱动编译(OCI 驱动编译(OCI )Windows操作系统中编译OCI驱动:这里假定Oracle Client 安装在C:\oracle。添加oci.dll动态连接库的环境变量这里假定Oracle Client安装在C:\oracle。添加oci.dll动态连接库的环境变量c:\oracle\bin。c:\oracle\bin。 set INCLUDE=%INCLUDE%;c:\oracle\oci\include INCLUDE=%INCLUDE%;c:\oracle\oci\ set LIB=%LIB%;c:\oracle\oci\lib\msvc LIB=%LIB%;c:\oracle\oci\lib\ cd %QTDIR%\src\plugins\sqldrivers\oci %QTDIR%\src\plugins\sqldrivers\ qmake -o Makefile oci.pro mingw32mingw32-make Linux(Unix)操作系统下编译OCI驱动:Linux(Unix)操作系统下编译OCI驱动:当然根据你的oracle修正下相应的版本号。当然根据你的oracle修正下相应的版本号。 Cd $QTDIR/src/plugins/sqldrivers/oci qmake -o Makefile "INCLUDEPATH+=/usr/include/oracle/10.1.0.3/client/" "LIBS+="LIBS+=-L/usr/lib/oracle/10.1.0.3/client/lib" oci.pro make QT中使用QT中使用在程序中包含头文件#include 在程序的.pro文件中添加在程序的.pro文件中添加QT += sql驱动编译数据库连接SQL执行操作SQL执行操作使用SQL 使用SQL Model类Model类数据呈现视图中数据呈现窗体中 数据库连接(单一连接)单一数据库连接: static bool sqlConnection(const QString& HostName, const QString& DatabaseName, const QString& UserName, const QString& Password) { QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setHostName(HostName); db.setDatabaseName(DatabaseName); db.setUserName(UserName); db.setPassword(Password); if(!db.open()) { QMessageBox::critical(0, QObject::tr("Error"), QObject::tr("The database reported an error: %1").arg(https://www.360docs.net/doc/c014078395.html,stError().text()));

二十七、Qt数据库(七)QSqlRelationalTableModel

讲完QSqlTableModel了,我们这次讲这个类的扩展类QSqlRelationalTableModel,它们没有太大的不同,唯一的就是后者在前者的基础之上添加了外键(或者叫外码)的支持。 QSqlRelationalTableModel,该类为单张的数据库表提供了一个可编辑的数据模型,它支持外键。 我们还是新建Qt4 Gui Application工程,我这里工程名为relationalTableModel ,然后选中QtSql模块,Base class选QWidget。工程建好后,添加C++ Header File ,命名为database.h,更改其内容如下: #ifndef DATABASE_H #define DATABASE_H #include #include static bool createConnection() { QSqlDatabase db = QSqlDatabase::addDatabase(“QSQLITE”); db.setDatabaseName(“database.db”); if(!db.open()) return false; QSqlQuery query; query.exec(“create table student (id int primary key, name vchar,course int)”); query.exec(“insert into student values (1,’yafei0′,1)”); query.exec(“insert into student values (2,’yafei1′,1)”); query.exec(“insert into student values (3,’yafei2′,2)”); query.exec(“create table course (id int primary key, name vchar, teacher vchar)”); query.exec(“insert into course values (1,’Math’,'yafeilinux1′)”); query.exec(“insert into course values (2,’ English’,'yafeilinux2′)”); query.exec(“insert into course values (3,’ Computer’,'yafeilinux3′)”); return true; } #endif // DATABASE_H

SqlServer教程:经典SQL语句集锦

SqlServer教程:经典SQL语句集锦 SQL分类:DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句:1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表:A: create table tab_new like tab_old (使用旧表创建新表) B: create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。7、说明:添加主键: [html]view plaincopyprint? 1. Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:

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 数据库啦 以上不同的可能路径不对其他的可按步骤进行操作: 也许开发环境的不同导致不能正常运行:

SQLServer基本语句汇总

序号功能语句 1创建数据库(创建之前判断该数据库是否存在)if exists (select * from sysdatabases where name='databaseName') drop database databaseName go Create DATABASE databasename 2删除数据库drop database databasename 3备份数据库USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' BACKUP DATABASE pubs TO testBack 4创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 5根据已有表创建新表1、use 原数据库名 go select * into 目的数据库名.dbo.目的表名 from 原表名(使用旧表创建新表)2、create table tab_new as select col1,col2… from tab_old definition only 6创建序列create sequence SIMON_SEQUENCE minvalue 1 -- 最小值 maxvalue 999999999999999999999999999 -- 最大值start with 1 -- 开始值 increment by 1 -- 每次加几 cache 20; 7删除新表drop table tabname 8增加一个列Alter table tabname add colname coltype alter table tablename add column_b int identity(1,1) 9删除一个列Alter table tabname drop column colname 10修改一个列ALTER TABLE 表名 ALTER COLUMN 字段名 varchar(30) NOT NULL DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 11添加主键Alter table tabname add primary key(col) 12删除主键Alter table tabname drop primary key(col) 13创建索引create [unique] index idxname on tabname(col…。)14删除索引drop index idxname on tabname 15创建视图create view viewname as select statement 16删除视图drop view viewname 17选择数据记录sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]" sql="select top 10 * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql="select top 10 * from 数据表 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 in ('值1','值2','值3')" sql="select * from 数据表 where 字段名 between 值1 and 值2" 注:like中"%"匹配0个或多个字符;like中"_"匹配一个字符 18更新数据记录sql="update 数据表 set 字段名=字段值 where 条件表达式" sql="update 数据表 set 字段1=值1,字段2=值2 ……字段n=值n where 条件表达式" 19删除数据记录sql="delete from 数据表 where 条件表达式" sql="delete from 数据表" (将数据表所有记录删除) 20添加数据记录sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)" sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表) 21数据记录统计函数AVG(字段名) 得出一个表格栏平均值 COUNT(*;字段名) 对数据行数的统计或对某一栏有值的数据行数统计MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的方法: sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"set rs=conn.excute(sql) 用 rs("别名") 获取统计的值,其它函数运用同上。 22查询去除重复值select distinct * from table1 23查询数据库中含有同一这字段的表select name from sysobjects where xtype = 'u' and id in(select id from syscolumns where name = 's3') 24只复制表结构select * into a from b where 1<>1 select top 0 * into b from a 25复制内容set identity_insert aa ON insert into aa(Customer_ID, ID_Type, ID_Number) select Customer_ID, ID_Type, ID_Number from TCustomer; set identity_insert aa OFF 26UNION 运算符(使用运算词的几个查询结果行必须是一致的)UNION 运算符通过组合其他两个结果表(例如TABLE1 和TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随UNION 一起使用时(即UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自TABLE1 就是来自TABLE2。 27EXCEPT 运算符EXCEPT 运算符通过包括所有在TABLE1 中但不在TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。 SQL Server语句 1/3

查询SQLServer正在执行的语句

查询,统计股票主要财务数据,查询Oracle正在执行的SQL语句,查询python模块的帮助文档,查询SQLServer正在执行的语句 查找/etc/passwd下bash为/bin/bash用户的数,查找两个有序数组中的中位数,查找数组中最大值最小值的另一种思路 [代码] [C/C++]代码 #include class A { public: A( ):count(1) {} virtual ~A( ) {} virtual A* Copy( ) const = 0; virtual void Out( ) const = 0; protected: int count; }; class B:public A { public: ~B( ) { --count; Out( ); } virtual A* Copy( ) const { B *p = new B(*this); ++p->count; return p; } //C#起名函数(类似页游的用户名生成) //C#求所有可能的排列组合 virtual void Out( ) const { cout << count << endl; } }; void main( ) { B b; A* a1=&b; a1->Out( ); a1 = a1->Copy( ); a1->Out( ); delete a1; }

//c#删除指定文件夹下的文件方法封装 //C#设置开机启动程序 [代码] [C/C++]代码 #include using namespace std; int main() { int b = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; int r,c,i,j; int d; while (cin>>r>>c) { int **a = new int*[r]; for (i=0; i>a[i][j]; } int dir =0; int tempi, tempj; d[0] = 0;//up d[1] =c; //right d = r;//down d =0;//left i=0; j=0; cout<=d[0]&&tempi=d&&tempj

Qt中MySQL数据库编程

Qt中MySQL数据库编程 Qt使用SQL 主要是下面的几个类 QSqlDatabase 建立于数据库的链接 QSqlQuery 用于执行SQL语句 QSqlTableModel 结合QTableView可以输出数据库的表 贴下我写的简单Demo [cpp]view plaincopyprint? 1.QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL"); // become s the new default connection 2. db.setUserName("root");//用户名 3. db.setPassword("password");//密码 4. db.setHostName("localhost"); 5. db.setDatabaseName("test");//数据库名 6. db.setConnectOptions("CLIENT_SSL=1;CLIENT_IGNORE_SPACE=1"); //使用SSL 7. db.setPort(3306);//端口 8. if(db.open()){ 9. qDebug()<<"open/n"<setTable("people"); //表名 23. model->setEditStrategy(QSqlTableModel::OnManualSubmit); 24. model->select(); 25. //model->removeColumn(0); // don't show the ID

相关文档
最新文档