分类: C/C++
2009-08-04 11:54:29
ADO数据对象用来连接数据库的方式有两种,分别是ODBC和OLE DB方式,下面就分别介绍用这两种方式连接数据库的例子。
第一种:ODBC DSN-Less Connections
ODBC Driver for Access
ODBC Driver for dBASE
ODBC Driver for Excel
ODBC Driver for MySQL
ODBC Driver for Oracle
ODBC Driver for Paradox
ODBC Driver for SQL Server
ODBC Driver for Sybase
ODBC Driver for Sybase SQL Anywhere
ODBC Driver for Text
ODBC Driver for Teradata
ODBC Driver for Visual FoxPro
第二种:OLE DB Data Provider Connections
OLE DB Provider for Active Directory Service
OLE DB Provider for DB2
OLD DB Provider for Internet Publishing
OLE DB Provider for Index Server
OLE DB Provider for Microsoft Jet
OLE DB Provider for ODBC Databases
OLE DB Provider for Oracle (From Microsoft)
OLE DB Provider for Oracle (From Oracle)
OLE DB Provider for Simple Provider
OLE DB Provider for SQL Server
一、下面我就先讲利用ODBC DSN来访问数据库,要完成这项工作,必须先通过“控制面板”—“管理工具”—“ODBC数据源”来建立一个数据源名,例如叫做TestData_Resoure。
1) 通过系统数据源(System DSN)的连接
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="DSN=TestData_Resoure;" & _
"Uid=AdminAccount;" & _
"Pwd=PassWord;
oConn.Open strConn
%>
2) 通过文件数据源(File DSN)的连接
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="FILEDSN=c:\somepath\mydb.dsn;" & _
"Uid=AdminAccount;" & _
"Pwd=PassWord;"
oConn.Open strConn
%>
3) 通过连接池(DSN-Less)的连接(ODBC Driver for AS/400)
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
strConn= "Driver={Client Access ODBC Driver (32-bit)};" & _
"System=myAS400;" & _
"Uid=myUsername;" & _
"Pwd=myPassword;"
oConn.Open strConn
%>
二、利用数据库驱动程序直接访问数据库的连接字符串。
1) ODBC Driver for Access
● 标准的也是比较常用的连接方法
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn= "Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=”&Server.MapPath(“Testdb.mdb”); & _
"Uid=AdminAccount;" & _
"Pwd=Password;"
oConn.Open strConn
%>
● 假如是一个工作组的系统数据库,那么连接字符串如下
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn= "Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=c:\datapath\Testdb.mdb;" & _
"SystemDB=c:\datapath\Testdb.mdw;", _
"admin", ""
oConn.Open strConn
%>
● 假如数据库(MDB)是网络上共享的,那么连接字符串如下
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=\\myServer\myShare\myPath\Testdb.mdb;"
oConn.Open strConn
%>
2) ODBC Driver for dBASE
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={Microsoft dBASE Driver (*.dbf)};" & _
"DriverID=277;" & _
"Dbq=c:\FilePath;"
oConn.Open strConn
%>
说明:这里要注意的一点就是,在SQL查询语句中要特别指定数据库文件名,例如:
oRs.Open "Select * From Testdb.dbf", oConn, , ,adCmdText
3) ODBC Driver for Excel
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={Microsoft Excel Driver (*.xls)};" & _
"DriverId=790;" & _
"Dbq=c:\filepath\myExecl.xls;"
oConn.Open strConn
%>
4) ODBC Driver for MySQL (通过 MyODBC驱动程序)
● 连接到本地数据库(local database)
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={mySQL};" & _
"Server=ServerName;" & _
"Option=16834;" & _
"Database=mydb;"
oConn.Open strConn
%>
● 连接远程数据库(remote databas)
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={mySQL};Server=db1.database.com;Port=3306;" & _
"Option=131072;Stmt=;Database=mydb;Uid=myUsername;Pwd=myPassword;"
oConn.Open strConn
%>
5) ODBC Driver for Oracle
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={Microsoft ODBC for Oracle};" & _
"Server=OracleServer.world;" & _
"Uid=myUsername;" & _
"Pwd=myPassword;"
oConn.Open strConn
%>
6) ODBC Driver for Paradox
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={Microsoft Paradox Driver (*.db)};" & _
"DriverID=538;" & _
"Fil=Paradox 5.X;" & _
"DefaultDir=c:\dbpath\;" & _
"Dbq=c:\dbpath\;" & _
"CollatingSequence=ASCII;"
oConn.Open strConn
%>
7) ODBC Driver for SQL Server
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn="Driver={SQL Server};" & _
"Server=MyServerName;" & _
"Database=myDatabaseName;" & _
"Uid=myUsername;" & _
"Pwd=myPassword;"
oConn.Open strConn
%>
8) ODBC Driver for Sybase (通过Sybase System 11 ODBC Driver驱动程序)
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn= "Driver={SYBASE SYSTEM 11};" & _
"Srvr=myServerName;" & _
"Uid=myUsername;" & _
"Pwd=myPassword;"
oConn.Open strConn
%>
9) ODBC Driver for Sybase SQL Anywhere
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn= "ODBC; Driver=Sybase SQL Anywhere 5.0;" & _
"DefaultDir=c:\dbpath\;" & _
"Dbf=c:\sqlany50\mydb.db;" & _
"Uid=myUsername;" & _
"Pwd=myPassword;"
"Dsn="""";"
oConn.Open strConn
%>
10) ODBC Driver for Teradata
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn= "Provider=Teradata;" & _
"DBCName=MyDbcName;" & _
"Database=MyDatabaseName;" & _
"Uid=myUsername;" & _
"Pwd=myPassword;"
oConn.Open strConn
%>
11) ODBC Driver for Text
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn= "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:\somepath\;" & _
"Extensions=asc,csv,tab,txt;" & _
"Persist Security Info=False"
oConn.Open strConn
%>
12) ODBC Driver for Visual FoxPro
●使用数据库容器(database container)连接方式
<%
Dim oConn,strConn
Set oConn=Server.CreateObject("ADODB.Connection")
StrConn= "Driver={Microsoft Visual FoxPro Driver};" & _
"SourceType=DBC;" & _
"SourceDB=c:\somepath\mySourceDb.dbc;" & _
"Exclusive=No;"
oConn.Open strConn
%>
● 不使用数据库容器(database container)连接方式(即Free Table Directory方式)
<%
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn= "Driver={Microsoft Visual FoxPro Driver};" & _
"SourceType=DBF;" & _
"SourceDB=c:\somepath\mySourceDbFolder;" & _
"Exclusive=No;"
oConn.Open strConn
%>
· ODBC
o 标准连接(Standard Security):
"Driver={SQL Server};Server=Aron1;Database=pubs;Uid=sa;Pwd=asdasd;"
1)当服务器为本地时Server可以使用(local);
"Driver={SQL Server};Server=(local);Database=pubs;Uid=sa;Pwd=asdasd;"
2)当连接远程服务器时,需指定地址、端口号和网络库
"Driver={SQL
Server};Server=130.120.110.001;Address=130.120.110.001,1052;Network=dbmssocn;Database=pubs;Uid=sa;Pwd=asdasd;"
注:Address参数必须为IP地址,而且必须包括端口号
o 信任连接(Trusted connection): (Microsoft Windows NT 集成了安全性)
"Driver={SQL Server};Server=Aron1;Database=pubs;Trusted_Connection=yes;"
或者
"Driver={SQL Server};Server=Aron1;Database=pubs; Uid=;Pwd=;"
o 连接时弹出输入用户名和口令对话框:
Conn.Properties("Prompt") = adPromptAlways
Conn.Open "Driver={SQL Server};Server=Aron1;DataBase=pubs;"
· OLE DB, OleDbConnection (.NET)
o 标准连接(Standard Security):
"Provider=sqloledb;Data Source=Aron1;Initial Catalog=pubs;User Id=sa;Password=asdasd;"
o 信任连接(Trusted connection):
"Provider=sqloledb;Data Source=Aron1;Initial Catalog=pubs;Integrated Security=SSPI;"
(如果连接一个具体的已命名SQLServer实例,使用Data Source=Servere NameInstance
Name;但仅适用于 SQLServer2000)例如:"Provider=sqloledb;Data
Source=MyServerNameMyInstanceName;Initial Catalog=MyDatabaseName;User
Id=MyUsername;Password=MyPassword;"
o 连接时弹出输入用户名和口令对话框:
Conn.Provider = "sqloledb"
Conn.Properties("Prompt") = adPromptAlways
Conn.Open "Data Source=Aron1;Initial Catalog=pubs;"
o 通过IP地址连接:
"Provider=sqloledb;Data Source=190.190.200.100,1433;Network
Library=DBMSSOCN;Initial Catalog=pubs;User ID=sa;Password=asdasd;"
(DBMSSOCN=TCP/IP代替Named Pipes, Data Source的末尾是需要使用的端口号(缺省为1433))
· SqlConnection (.NET)
o 标准连接(Standard Security):
"Data Source=Aron1;Initial Catalog=pubs;User Id=sa;Password=asdasd;"
或者
"Server=Aron1;Database=pubs;User ID=sa;Password=asdasd;Trusted_Connection=False"
(这两个连接串的结果相同)
o 信任连接(Trusted connection):
"Data Source=Aron1;Initial Catalog=pubs;Integrated Security=SSPI;"
或者
"Server=Aron1;Database=pubs;Trusted_Connection=True;"
(这两个连接串的结果相同)
(可以用serverNameinstanceName代替Data Source,取值为一个具体的SQLServer实例,但仅适用于 SQLServer2000)
o 通过IP地址连接:
"Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=pubs;User ID=sa;Password=asdasd;"
(DBMSSOCN=TCP/IP代替Named Pipes, Data Source的末尾是需要使用的端口号(缺省为1433))
o SqlConnection连接的声明:
C#:
using System.Data.SqlClient;
SqlConnection SQLConn = new SqlConnection();
SQLConn.ConnectionString="my connectionstring";
SQLConn.Open();
VB.NET:
Imports System.Data.SqlClient
Dim SQLConn As SqlConnection = New SqlConnection()
SQLConn.ConnectionString="my connectionstring"
SQLConn.Open()
· Data Shape
o MS Data Shape
"Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=Aron1;Initial Catalog=pubs;User ID=sa;Password=asdasd;"
· 更多
o 如何定义使用哪个协议
§ 举例:
"Provider=sqloledb;Data Source=190.190.200.100,1433;Network
Library=DBMSSOCN;Initial Catalog=pubs;User ID=sa;Password=asdasd;"
名称 网络协议库
dbnmpntw Win32 Named Pipes
dbmssocn Win32 Winsock TCP/IP
dbmsspxn Win32 SPX/IPX
dbmsvinn Win32 Banyan Vines
dbmsrpcn Win32 Multi-Protocol (Windows RPC)
§ 重要提示
当通过SQLOLEDB提供者进行连接时使用以下语法:
Network Library=dbmssocn
但通过MSDASQL提供者进行连接时使用以下语法:
Network=dbmssocn
o 所有SqlConnection连接串属性
§所有连接属性
下表显示了ADO.NET SqlConnection对象的所有连接串属性. 其中大多数的属性也在ADO中使用.所有属性和描述来自于MSDN.
名称 缺省值 描述
Application Name 应用程序名称或者当没有提供应用程序时为.Net SqlClient数据提供者
AttachDBFilename
或者
extended properties
或者
Initial File Name 主要文件的名字,包括相关联数据库的全路径。数据库名字必须通过关键字'database'来指定。
Connect Timeout
或者
Connection Timeout 15 在中止连接请求,产生错误之前等待服务器连接的时间(以秒为单位)
Connection Lifetime 0
当一个连接返回到连接池,当前时间与连接创建时间的差值,如果时间段超过了指定的连接生存时间,此连接就被破坏。它用于聚集设置中在运行服务器和准备上线
的服务器之间强制负载平衡。
Connection Reset 'true' 当连接从连接池移走时决定是否重置数据库连接。当设置为'false'时用于避免获得连接时的额外服务器往复代价。
Current Language SQL Server语言记录名称
Data Source
或Server
或Address
或Addr
或Network Address 要连接的SQL Server实例的名字或者网络地址
Enlist 'true' 为真时,连接池自动列出创建线程的当前事务上下文中的连接。
Initial Catalog
或Database 数据库名
Integrated Security
或者Trusted_Connection 'false' 连接是否为信任连接。其取值为'true', 'false'和'sspi'(等于'true').
Max Pool Size 100 连接池中允许的最大连接数
Min Pool Size 0 连接池中允许的最小连接数
Network Library
或Net 'dbmssocn' 网络库用于建立与一个 SQL Server实例的连接。
值包括dbnmpntw (命名管道),
dbmsrpcn (多协议),
dbmsadsn (Apple Talk),
dbmsgnet (VIA),
dbmsipcn (共享内存),
dbmsspxn (IPX/SPX),
dbmssocn (TCP/IP).
所连接的系统必须安装相应的动态链接库。
如果你没有指定网络,当你使用一个局部的服务器 (例如, "." 或者 "(local)"),将使用共享内存
Packet Size 8192 与 SQL Server的一个实例通讯的网络包字节大小
Password
或Pwd SQL Server帐户登录口令
Persist Security Info 'false' 设置为'false',当连接已经打开或者一直处于打开状态时,敏感性的安全信息 (如口令)不会返回作为连接的一部分信息。
Pooling 'true' 为真时,从合适的连接池中取出SQLConnection对象,或者必要时创建SQLConnection对象并把它增加到合适的连接池中。
User ID SQL Server登录用户
Workstation ID the local computer name 连接到SQL Server的工作站名称
§ 注意:
使用分号分隔每个属性
如果一个名字出现多于两次,在连接串中的最后一次出现的值将被使用。
如果你通过在应用中由用户输入字段的值来构建连接串,你必须保证用户不会通过用户值里的另一个值插入到一个额外的属性来改变连接串。
chinaunix网友2010-07-26 10:04:21
周易算命 周易天地 周易起名 周易网 周易测名 周易八卦 周易预测 周易解梦 周易起名网 ●周易视频光盘 2000集80盘DVD 货到付款 1500 6565675 周易大师 哪里能买到 哪里有 请问 哪里能 买到 可以 下载 免费 赠送 地址 怎样 便宜的 如何 才能 怎么 视频 光盘 周易|易经|周易书籍|周易易学教学光盘|算命软件|算命|风水|八字|起名|奇门|免费算命|在线排盘 周易视频光盘 2000集80盘DVD 货到付款 1500 6565 675 周易,易经,周易书籍,周易易学教学光盘,算命软件,算命,风水,八字,起名,奇门,免费算命,在线排盘,占卜,八卦,气功,紫微斗数,六壬,手相,面相,占星,神秘文化,玄学,四柱,铁板神术,邵子神术,蠢子神术,皇极数,太乙数,南极神数,范围数,河图,洛书 周易光盘,周易光盘命理,周易光盘风水,周易光盘奇门遁甲,周易光盘阳宅,周易光盘姓名学,周易光盘八字,周易光盘六爻,周易光盘大六壬,周易光盘紫微斗数,周易光盘阴宅,周易光盘铁板神数,周易光盘梅花易数 您一个订货电话,通知地址姓名,我们立刻免费发货,
chinaunix网友2010-07-26 09:50:27
哪里能买到 哪里有 请问 哪里能 买到 可以 下载 免费 赠送 地址 怎样 便宜的 如何 才能 怎么 视频 光盘 周易|易经|周易书籍|周易易学教学光盘|算命软件|算命|风水|八字|起名|奇门|免费算命|在线排盘●周易视频光盘 2000集80盘DVD 货到付款 1500 6565675 周易,易经,周易书籍,周易易学教学光盘,算命软件,算命,风水,八字,起名,奇门,免费算命,在线排盘,占卜,八卦,气功,紫微斗数,六壬,手相,面相,占星,神秘文化,玄学,四柱,铁板神术,邵子神术,蠢子神术,皇极数,太乙数,南极神数,范围数,河图,洛书 周易光盘,周易光盘命理,周易光盘风水,周易光盘奇门遁甲,周易光盘阳宅,周易光盘姓名学,周易光盘八字,周易光盘六爻,周易光盘大六壬,周易光盘紫微斗数,周易光盘阴宅,周易光盘铁板神数,周易光盘梅花易数 您一个订货电话,通知地址姓名,我们立刻免费发货,送货到你家时再一手交钱一手交货。 http://zyspgpw.spaces.live.com/ 编号 光盘内容 集/
chinaunix网友2010-03-08 16:11:21
如果您有一技之长,请到淘师宝发帖子收徒弟; 如果您想学习一门技能,请到淘师宝发帖子拜师傅; 拜师傅,收徒弟,到淘师宝,网址:www.taoshibao.com