逐梦论坛's Archiver

shillan 发表于 2016-11-15 22:45

VC++ ADO连接SQLSERVER时连接字符串的模式

[p=30, 2, left][size=18px]一、连接SQL SERVER的第一种连接字串:[/size][/p][p=30, 2, left][size=18px]是针对[url=http://lib.csdn.net/base/mysql]数据库[/url]身份验证模式为”SQL SERVER 和 windows“而言,[/size][/p][p=30, 2, left][size=18px]连接字串为:[/size][/p][p=30, 2, left][size=18px]CString strConn;[/size][/p][p=30, 2, left][size=18px]strConn = ”Provider = SQLOLEDB.1;\[/size][/p][p=30, 2, left][size=18px]
Persist Security Info = true;\[/size][/p][p=30, 2, left][size=18px]
User ID = sa;\[/size][/p][p=30, 2, left][size=18px]
Password=123456;\[/size][/p][p=30, 2, left][size=18px]
Initial Catalog = tempdb;\[/size][/p][p=30, 2, left][size=18px]
Data Source = 127.0.0.1”;[/size][/p][p=30, 2, left][size=18px](包含 6 项,有用户名和密码,数据库名,服务器名(服务器名可以是网络上的,此时是一个IP地址))[/size][/p][p=30, 2, left]
[/p][p=30, 2, left][size=18px]二、连接SQL SERVER的第二种连接字串:
[/size][/p][p=30, 2, left][size=18px]       针对身份验证模式为“仅 windows”,[/size][/p][p=30, 2, left][size=18px]
连接字串为:[/size][/p][p=30, 2, left][size=18px]strConn= “[/size][/p][p=30, 2, left][size=18px]
Provider = SQLOLEDB.1;\[/size][/p][p=30, 2, left][size=18px]
Integrated Security=SSPI;\[/size][/p][p=30, 2, left][size=18px]
Persist Security Info =false;\[/size][/p][p=30, 2, left][size=18px]
Initial Catalog = tempdb;\[/size][/p][p=30, 2, left][size=18px]
Data Source = (local)”;[/size][/p][p=30, 2, left][size=18px](包含 5 项,因为已经有windows验证了,所以不再需要用户名和密码,如果是本机的SQL SERVER,那么服务器名可写为(local))[/size][/p][p=30, 2, left]
[/p][p=30, 2, left][size=18px]三、连接SQL SERVER的第二种连接字串:[/size][/p][p=30, 2, left][size=18px]
仅针对ODBC的连接方式,[/size][/p][p=30, 2, left][size=18px]
连接字串为:[/size][/p][p=30, 2, left][size=18px]strConn= “[/size][/p][p=30, 2, left][size=18px]
Provider = SQLOLEDB;\[/size][/p][p=30, 2, left][size=18px]
Server = (local);\[/size][/p][p=30, 2, left][size=18px]
Database = tempdb;\[/size][/p][p=30, 2, left][size=18px]
uid = sa;\[/size][/p][p=30, 2, left][size=18px]
pwd=12345;"[/size][/p][p=30, 2, left]
[/p][p=30, 2, left][size=18px]以上三种连接方式,记住任意一种即可,推荐使用第二种[/size][/p][p=30, 2, left]
[/p][p=30, 2, left][size=18px][b][color=#ff6666]关于连接字串的问题,我们可以借助 udl 文件来处理[/color][/b]~~[/size][/p]
[size=18px][b]新创建一个空的txt文件.把扩展名修改为udl就行了.UDL本身是个文本文件.它的主要作用是查看配置好的数据库连接字.先配置好.然后使用记事本打开[/b][/size]


[color=#000][font=Arial][size=18px]eg:我们在桌面创建一个 test.udl 文件,[/size][/font][/color]
[p=30, 2, left][size=18px]1.如果要连接SQLserver数据库,【提供程序】选择:[/size][/p][p=30, 2, left][size=18px]microsoft ole db provider for sql server这一项,[/size][/p][p=30, 2, left][size=18px]2.【连接】中,服务器名称,选择RICHARDLEE(即本机服务器名称)[/size][/p][p=30, 2, left][size=18px]如果我们选择windows认证模式,就不用指定用户名和密码了,[/size][/p][p=30, 2, left][size=18px]【在服务器上选择数据库】这一栏,就填我们在sqlserver中,某个自己想连接的数据库 ,比如 test[/size][/p][p=30, 2, left][size=18px]再点击【[url=http://lib.csdn.net/base/softwaretest]测试[/url]连接】,如果连接成功,说明我们的连接字串都是对的~~[/size][/p][p=30, 2, left][size=18px]3.(我们自己填写的连接字串,在【所有】这一栏中可以看到)[/size][/p][p=30, 2, left][size=18px]4.把文件的后缀名改为*.txt打开后,就可以发现连接字串了,eg:[/size][/p][p=30, 2, left][size=18px][oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=test1;Data Source=RICHARDLEE
[/size][/p][p=30, 2, left][size=18px]5.上面的连接字串就可以用在我们的程序中,比如[/size][/p][p=30, 2, left][size=18px]hr = m_pConnection.CreateInstance(__uuidof(Connection));
[/size][/p][p=30, 2, left][size=18px]hr = m_pConnection->Open("Provider=SQLOLEDB.1;\

Integrated Security=SSPI;\

Persist Security Info=False;\

Initial Catalog=test1;\

Data Source=(local)","","",adModeUnknown);
[/size][/p][p=30, 2, left]
[/p][p=30, 2, left][size=18px](PS:连接字串中,各部分的先后顺序对数据库连接没有影响,即Integrated Security和Persist Security Info,谁在前谁在后,都无所谓)[/size][/p][p=30, 2, left]
[/p][p=30, 2, left][size=18px]************************************************************************************************************************[/size][/p][p=30, 2, left][size=18px]VC_ADO连接SQLSERVER的连接字串和VC-ADO连接ACCESS的连接字串有些不一样的地方~~
[/size][/p][p=30, 2, left][size=18px]1.连接ACCESS时,常用[/size][/p][p=30, 2, left][size=18px]hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\test1.mdb","","",adModeUnknown);
[/size][/p][p=30, 2, left][size=18px]即,连接字串为"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\test1.mdb"[/size][/p][p=30, 2, left][size=18px]这里的Data Source=D:\\test1.mdb是ACCESS数据库的名称,除非数据库文件放在了当前工程路径下,否则要写全部路径名,并且要写数据库的后缀名[/size][/p][p=30, 2, left][size=18px]要注意,是”D:\\“,而不是”D:\“,写成后者,会出错[/size][/p][p=30, 2, left][size=18px]2.连接SQLSERVER时,[/size][/p][p=30, 2, left][size=18px]Initial Catalog=test1;这一项表示连接的数据库名,要注意,这里的test1是数据库的名称,不能给他加上路径,也不能加上后缀*.mdf,写成
[/size][/p][p=30, 2, left][size=18px]Initial Catalog=D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\test1.mdf;会出错~~[/size][/p]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.