Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4559290
  • 博文数量: 671
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 7310
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-14 09:56
文章分类

全部博文(671)

文章存档

2011年(1)

2010年(2)

2009年(24)

2008年(271)

2007年(319)

2006年(54)

我的朋友

分类: C/C++

2009-08-04 11:54:29

在网络编程过程中,ADO(Activex Data Object)编程往往是不可少的工作,特别是开发电子商务网站。既然讲到ADO数据对象,那么就顺便简单地介绍一下ADO数据对象及其功能。ADO数据 对象共有七种独立的对象,他们分别是连接对象(Connection)、记录集对象(RecordSet)、域对象(Field)、命令对象 (Command)、参数对象(Parameter)、属性对象(Property)和错误对象(Error)。功能请参见附录1。

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

%>



详细的ado连接字符串解释
2009-05-07 21:11

      · 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的工作站名称

      § 注意:
      使用分号分隔每个属性
      如果一个名字出现多于两次,在连接串中的最后一次出现的值将被使用。
      如果你通过在应用中由用户输入字段的值来构建连接串,你必须保证用户不会通过用户值里的另一个值插入到一个额外的属性来改变连接串。

阅读(9910) | 评论(3) | 转发(1) |
给主人留下些什么吧!~~

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