正文

转通过ADO连接各种数据库的字符串翠集2007-12-24 17:14:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/sword2008/31588.html

分享到:

通过ADO连接各种数据库的字符串翠集
在网络编程过程中,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访问Access数据库如下  
  DbPath   =   SERVER.MapPath("..\bookshop.mdb")  
  Set   conn   =   Server.CreateObject("ADODB.Connection")  
  conn.open   "driver={Microsoft   Access   Driver   (*.mdb)};dbq="   &   DbPath  
  访问成功,如果发布到网上去(申请的空间),是否一样会成功?  
  这里使用了Access   驱动,发布上去要不要考虑服务器上有没有Access   驱动?  

 

    前节已讲到笔者建立了数据库并输入了数据,但是查看数据呢,还没有,得直接打开数据库,我经过学习,发现,其实做好了输入的程序,查询只是一个逆过程,简单得多了。
    首先当然还是得加上数据库连接文件conn.asp,方法是用include方法,
<!--#include file="conn.asp"-->
这样本文件就连接上了数据库,然后把数据库打开,
 set rs=server.CreateObject("adodb.recordset")
  sql="select * from information"
  rs.open sql,conn,1,1
    打开数据库的格式基本上都是这样,不过其中的rs、sql等是可以自定的,但一般为了意义上的明确都这样写,实际上什么字母都可以,rs.open sql,conn后来的参数前面已有专文说明,不过说得很复杂,我一般简单地使用就是纯打开取数据就用1,1,要写入数据我就用3,3了,好象也可以。
    打开数据库后,就可以将数据取出放入文本框中显示出来了,假如文本框名字为text,则在Dreamweaver的设计界面将其初始值设为<%=rs("字段名")%>,也可以直接用某信息:<%=rs("字段名")%>,这样ASP用这种巧妙的办法将字段同已有的文字结合起来显示各种信息。
 

<%@ Import Namespace="System.Data" %>
    <%@ Import NameSpace="System.Data.OleDb" %>
    <script laguage="VB" runat="server">
    Dim myConnection As OleDbConnection
    Dim myCommand As OleDbCommand
    sub page_load(sender as Object,e as EventArgs)

    '1.连接数据库
    dim dbname as string
    dbname=server.mappath("authors.mdb")
    myConnection = New OleDbConnection( "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source="&dbname )
    myConnection.Open()
    la1.text="Connection Opened!"

 

    '2.添加记录
    myCommand = New OleDbCommand( "Insert INTO Authors(Authors,country) Values('Simson','usa')", myConnection )
    myCommand.ExecuteNonQuery()
    la2.text="New Record Inserted!"

 

    '3 更新数据(Access)
    myCommand = New OleDbCommand( "UPDATE Authors SET Authors='Bennett' WHERE Authors = 'Simson'", myConnection )
    myCommand.ExecuteNonQuery()
    la3.text="Record Updated!"

 

    '4 删除数据(access)
    myCommand = New OleDbCommand( "DELETE FROM Authors WHERE Authors = 'David'", myConnection )
    myCommand.ExecuteNonQuery()
    la4.text="Record Deleted!"

 

    '5 使用DateGrid显示数据
    myCommand = New OleDbCommand( "select * FROM Authors", myConnection )
    MyDataGrid.DataSource=myCommand.Executereader()
    MyDataGrid.DataBind()

 

    end sub
    </script>
    <html>
    <body>
    <asp:label id="la1" runat="server" /><br>
    <asp:label id="la2" runat="server" /><br>
    <asp:label id="la3" runat="server" /><br>
    <asp:label id="la4" runat="server" /><br>
    <ASP:DataGrid id="MyDataGrid" runat="server"
    BorderColor="black"
    BorderWidth="1"
    GridLines="Both"
    CellPadding="3"
    CellSpacing="0"
    Font-Name="Verdana"
    Font-Size="10pt"
    HeaderStyle-BackColor="#aaaadd"
    AlternatingItemStyle-BackColor="#eeeeee"
    >
    </asp:DataGrid>

    </body>
    </html>

第一步、编写连接公用函数 conn.asp

<%
 on error resume next
 Server.ScriptTimeout=60
 dim driver_Provider,conn,connPath,connstr
 driver_Provider = "Provider=Microsoft.Jet.OLEDB.4.0;"
 connPath = "Data Source=" & Server.MapPath("/test/koma.mdb")
 Set conn= Server.CreateObject("ADODB.Connection")
 connstr=driver_Provider&connPath
 conn.Open connstr
%>

第二步、编写测试程序 index.asp

<!--#include file=conn.asp-->
<%
 strsql = "select * from class_info order by cId desc"
 set rs=server.createobject("adodb.recordset")
 rs.open strsql,conn,1,1
 do while not rs.eof
  response.write "<li>" & rs("cName")
 rs.movenext
 loop
 rs.close
 set rs=nothing 
%>

备注:数据结构

字段名称    数据类型
cId(主键)  cName(文本)

阅读(4334) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册