>

asp相关知识整理,陆拾一个人win柒的IIS七下asp与

- 编辑:www.bifa688.com -

asp相关知识整理,陆拾一个人win柒的IIS七下asp与

最近升级了电脑主机,淘宝买的,卖家把我装好了64位的win7和一些基本程序。

本文转自:
原文如下:  

WWW----World Wide Web(万维网) 
URL----Uniform Resource Locator(统一资源定位符) 
HTTP----Hyper Text Transfer Protocol(超文本传输协议) 
HTML----Hyper Text Markup Language(超文本标记语言) 
XML----Extensible Markup Language(可扩展标记语言) 
ODBC----Open DataBase Connectivity(开放数据库连接标准) 
DLL----Dynamic Link Library(动态链接库) 
DAO----Data Access Objects(数据连接对象) 
RDO----Remote Data Objects(远程数据对象) 
ADO----Microsoft ActiveX Data Objects(动态数据对象) 
SQL----Structured Query Language(结构化查询语言) 
CGI----Common Gateway Interface(公共网关接口) 
API----Application Programming Interface(应用程序编程接口) 
ASP----Active Server Pages(动态服务页面) 
PHP----Personal HomePage(个人主页) 
JSP----Java Server Pages 
ColdFusion 
SSI----Server-Side Include(服务器端包含) 
DOM----Document Object Model(文档对象模型) 
IIS----Internet Information Server(网络信息服务) 
IP----Internet Protocol(网际协议) 
TCP----Transmission Control Protocol(传输控制协议) 
IE----Internet Explorer(浏览器) 
CSS----Cascading Style Sheet(层叠式样式表) 
VBScript----Microsoft Visual Basic Script Edition 
ISDN----综合业务数字网 
Web 
FTP 
SMTP 
MMC----管理控制台

自己有个小程序是asp的,要让它运行起来,于是装上IIS(之前在添加删除程序里,现在叫 打开或关闭Windows功能 ,找了好一会儿),搭好web后,发现一直在运行,页面一页空白。
好久没碰asp程序了,但还是有点印象的。于是打开程序,找到连接数据库那段后,加了句:Response.Write Err.Description,提示没记录下来,大概是没有找到合适的应用程序。
看了下机子上,有word,excel等,没access。重新装了下office2003,有了access。

摘要:

 

web运行,提示:未找到提供程序。该程序可能未正确安装。

  本文讨论利用ASP存取DBF、DBC、MDB、Excel、SQL Server型数据的方法及函数实现,最后给出一个利用本文提供的函数存取Excel型数据库的例子,对企事业数据重用及共享具有很强的实际意义。

网页设计前述

原程序

  关键词:

Web(万维网)提供了一个图形化用户界面,一浏览Internet上的文档,这些文档以及它们之间的链接构成了一个庞大的信息网。 
Web起源于1989年3月,是由欧洲量子物理实验室CERN(the Ruropean Laboratory for Particle Physics)开发的主从结构分布超媒体系统。 
Web是信息资源的海洋,三个要素保证了人们能够方便地在这海洋中遨游: 
l 统一的资源命名方案(URL) 
l 访问某一资源的方式,即协议(HTTP) 
l 在资源之间自由访问的方法,即超文本(HTTP) 
Internet发展到现在,Web技术经历了3个发展阶段: 
l 第一代,提供对静态文档(信息)的管理和访问(显示) 
l 第二代,与数据库系统相结合,提供对动态文档(信息)的访问和显示 
l 第三代,除动态文档生成和访问之外,还提供基于Web的联机事务处理能力。

Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(AccessPath&"/"&AccessFile)
Conn.Open

  ASP数据库存取 DBF DBC MDB Excel SQL Server

 

我改成:

  前言

静态网页存在的不足:

Conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(AccessPath&"/"&AccessFile)&";"

  在Internet/Intranet网页上随处可见留言板、讨论组、网上投票、网上调查、聊天室等Internet功能模块,这些程序都是利用ASP(Active Server Page)与数据库技术结合而实现的。在Internet/Intranet上用的数据库大都是mdb数据库或SQL<数据库,但是在企事业Intranet<网中,各种版本的数据库已存在如DBF<、DBC、Excel、文本数据库,这些数据库是由应用软件如办公自动化系统、财务软件等所生成,如果ASP能直接利用这些类型数据库,就不需要重新建立数据库,进一步实现企业数据共享,究竟这些数据库能不能直接被ASP使用,笔者经过长期探讨总结出给出肯定的答案。

1. 无法支持后台数据库 
2. 无法有效的对站点信息进行及时的更新 
3. 无法实现动态显示效果 
ASP是Microsoft公司在1996年底推出的一种运行于服务器端的Web应用程序开发技术。ASP既不是一种语言,也不是一种开发工具,而是一种内含于IIS/PWS之中的易学易用,可以集成Script语言到HTML主页的服务器端的脚本语言环境,其主要功能是为生成动态的,交互的Web服务器应用程序提供一种功能强大的方式和技术。

提示:[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

  一、ASP的对象存取数据库方法

 

以往的经验,可能没开启父路径,在IIS里找了下启用了,还是一样。

  在ASP中,用来存取数据库的对象统称ADO(Active Data Objects),主要含有三种对象:Connection、Recordset 、Command,其中Connection负责打开或连接数据库,Recordset负责存取数据表,Command负责对数据库执行行动查询(Action Query)命令和执行SQL Server的Stored Procedure。只依靠这三个对象还是无法存取数据库的,还必须具有数据库存取的驱动程序:OLE DB驱动程序和ODBC驱动程序。对于任何一种数据库都必须有相对应的OLE DB驱动程序和ODBC驱动程序,ADO<才能对数据库进行存取。存取过程可用下图描述:

ASP的特点如下:

搜索了下,发现问题在IIS7身上。

  图片 1
  由上图可知,ADO对象必须与各种驱动程序结合才能存取各种类型数据库,不同的数据库需要不同的驱动程序。究竟机器上已安装哪些驱动程序呢?可通过如下的方法来验证:Windows9X或NT的“开始”→“设置”→“控制面板”→“ODBC Data Source(32Bit)”中的“驱动程序”标签页查证我们的机器上究竟装了哪些驱动程序。大致有如下表所列的驱动程序:

 

应用程序池默认设置 里 常规->启用32位应用程序 默认是False改成True。

  <驱动程序           <适用数据库类型
  
  Microsoft.Jet.OLEDB.4.0     Mdb
  
  Microsoft Access Driver     Access
  
  Microsoft dBase Driver     Dbase

1. ASP可以混用HTML,DHTML,Java小程序,ActiveX,VBScript,<I>javascript</I>,并且可以互相嵌套。 
2. 不需编译,纯文本格式。 
3. 安全性好 
4. 面向对象 
5. 可扩充服务器端功能 
6. 可扩充脚本语言 
7. 与浏览器无关 
8. ASP提供6个内置的全局对象供开发者不需声明就可直接调用 
9. ASP提供5个重要的服务器组件

这时候提示:

  Microsoft Excel Driver     Excel
  
  Microsoft Visual FoxPro Driver   Dbc
  
  SQLOLEDB.1           SQL Server7.0   

 

前者:未指定的错误数据库连接出错,请检查连接字串

  二、连接数据库和打开数据表

访问HTML页面的过程:

后者:[Microsoft][ODBC Microsoft Access 驱动程序] Microsoft Jet 数据库引擎打不开文件'(未知的)'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。

  不同的数据库连接方法不一样(即建立Connection的实例方法不一样),一旦建立Connection实例完毕,利用Recordset对象进行存取数取数据的方法大同小异,下面对于不同的数据类型,编写了相对应的连接函数,其原型如下:

 

继续找办法:
windows/temp文件夹缺少一个用户组权限,缺少的用户组为Authenticated Users。

  1)Function CreatMdbRecordset( 数据库文件名, 数据表文件名或Select语句 );建立Mdb类型的数据库对象

1. 在客户端浏览器地址栏处输入HTML文件的URL地址,按回车键发送一个网页请求 
2. 浏览器发送网页请求到IIS/PWS服务器 
3. IIS/PWS服务器接收到请求,通过扩展名.htm或.html判断是HTML文件的请求 
4. IIS/PWS服务器将对应的HTML文件从磁盘或存储器中取出并送回浏览器 
5. HTML文件由用户的浏览器解释,结果在浏览器的窗口显示

于是给这个文件夹添加 Authenticated Users 用户组 ,给于读取、写入权限。

  2)Function CreateSecuredMdbRecordset( 数据库文件名,数据表文件名或Select语句, 密码 );建立带密码的MDB类型的数据库对象;

 

问题解决了!

  3)Function CreateDbfRecordset(目录名, DBF文件名或Select语句);建立DBF类型的数据库对象;

访问ASP网页的过程:

‘Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 找不到文件 '(未知的)'。
/conn/conn1.asp, 第 3 行'
在windows7中正确设置了IIS7.0的配置,同时正确设置了ASP
的权限问题,但在运行时会弹出如上错误!
我的数据库连接代码是:

  4)Function CreateDbcRecordset(DBC数据库文件名, 数据表名或Select语句);建立DBC类型的数据库对象;

 

复制代码 代码如下:

  5)Function CreateExcelRecordset(XLS文件名,Sheet名);建立Excel类型的数据库对象;

1. 在客户端浏览器的地址栏输入要请求的ASP文件的URL地址,按回车键发送一个ASP请求 
2. 浏览器向IIS/PWS服务器发送ASP网页请求 
3. IIS/PWS服务器收到请求并根据扩展名.asp识别出ASP文件 
4. IIS/PWS服务器从磁盘或内存中获取相应的ASP文件 
5. IIS/PWS服务器将ASP文件发送到一个类似于发动机引擎的名为asp.dll的特定文件库中 
6. asp.dll引擎将ASP文件从头至尾进行解释处理,并根据ASP文件中的命令要求生成相应的动态HTML页面 
7. HTML页面被送回客户端浏览器 
8. 用客户端浏览器解释执行HTML网页,并将结果显示在客户端浏览器上

<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & DefaultDir &server.mappath("worker.mdb")&";"
Set rs = Server.CreateObject("ADODB.Recordset")
Set rs1 = Server.CreateObject("ADODB.Recordset")
Set rs2 = Server.CreateObject("ADODB.Recordset")
Set rs3 = Server.CreateObject("ADODB.Recordset")
%>

  6)Function CreateSQLServerRecordset(计算机名称,用户ID, 用户密码,数据库名称 数据表或查看表或Select指令 );建立SQL Server 类型的数据库对象;

 

网络中流传很多版本的解释,经本人尝试解决方法:
windows/temp文件夹缺少一个用户组权限
一般在windows7默认安装的IIS中,缺少的用户组为Authenticated Users
添加
Authenticated Users

  三、程序清单

与HTML相比,ASP具有3**个重要特征:**

默认权限为读取、写入。ok,系统正常运行

  ‘以下程序用VBScript编写

 

win7或windows 2008 64位系统中,asp access 数据库连接错误解决办法

  1)建立MdbRecordset对象,Mdb数据库是一个完整的数据库,内部可能含有若干个数据表,在此函数中,Connection的作用是连接数据库,Recordset的作用是打开数据表。

1. ASP可以包含服务器端脚本语言,即可以用动态内容创建网页 
2. ASP使用内置对象可以使脚本功能更强大 
3. ASP使用组件使用户可以处理数据库,发送email或访问文件系统等

Win7或Windows server 2008中IIS7是默认不安装的,所以在安装完Win7或Windows server 2008之后如果需要安装IIS7的话,就要自己动手了。安装的步骤为:开始》控制面板》程序》打开或关闭Windows功能》Internet信息服务。IIS7安装时需要注意的是,如果需要ASP、ASP.NET等的支持,是需要把功能模块给装上的,默认是不安装的。

  Function CreateMdbRecordset(数据库文件名, 数据表名或Select语句 )

 

win7或windows 2008 64位系统解决IIS7中Access数据库问题。

  Dim conn,Provider,DBPath

ASP提供的6个内置对象:

如果你使用64位系统,那可能如上办法也解决不了,原因是64位系统没有提供64位ACCESS连接的驱动,把网站对应的应用程序池中项目的“启用32位应用程序”置为“ture”。 这样就可以了。

  ‘ 建立Connection 对象
  Set conn = Server.CreateObject("ADODB.Connection")
  Provider = "Provider=Microsoft.Jet.OLEDB.4.0;"
  DBPath = "Data Source=" & Server.MapPath( "数据库文件名" )
  ‘打开数据库
  conn.Open Provider & DBPath

 

Other tips in IIS7:

  Set CreateMdbRecordset = Server.CreateObject("ADODB.Recordset")
  ‘ 打开数据表,参数二为Connection对象
  CreateMdbRecordset.Open "数据表名", conn, 2, 2

1. Response:发送信息到浏览器 
2. Request:用来读取来自浏览器的请求信息,可用该对象读取HTML表单的信息 
3. Server:允许用脚本来生成Active Server组件的实例 
4. Application:用来存储,读取用户共享的应用程序信息,如可以用该对象在网站的不同连接者之间传递共用信息 
5. Session:用来存储,读取特定连接者的对话信息,如可以存储连接者对网站的访问信息 
6. ObjectContext:用于控制ASP的交易(Transaction),交易由Microsoft Transaction Server(MTS)管理

a. 启用父路径。
常用的 ../ 父路径使用在IIS7里面是默认不支持的。
在iis的主页-->ASP -> 双击打开-> 启用父路径: True

  End Function

 

b. 向浏览器返回错误信息。
默认网页代码出错浏览器会出现“An error occurred on the server when processing the URL. Please contact the system administrator”。
在iis的主页-->ASP -> 双击打开->调试错误-> 将错误发送到浏览器: True

  2)建立带密码的Mdb数据库的Recordset对象,它的建立方式与建立不带密码的Mdb数据库的Recordset对象类似,只是多了一个密码参数,即在与数据库连接时,必须给出密码信息。
  Function CreateSecuredMdbRecordset( 数据库文件名, 数据表名或Select语句,password )

ASP提供的5**个重要组件**

您可能感兴趣的文章:

  • win7 iis7.5 乱码 和 解析不了ASP的ADO连接数据库 的解决方法
  • Win7下在IIS7中配置PHP的FastCGI支持_笔记
  • Win7/Windows2003下IIS6.0、IIS7.5的伪静态组件安装和伪静态配置方法
  • win7下IIS的安装和配置 图文教程
  • Win7中IIS的ASP.NET环境配置简洁版
  • Win7旗舰版中的IIS配置asp.net的运行环境配置教程(图文教程 视频)
  • Win7 IIS7.5运行ASP时出现500错误的解决办法
  • win7和win2008 r2下配置IIS7(ASP.net运行环境)
  • IIS 7.0安装配置方法图文教程(win7)
  • Win7下如何搭建IIS 7.0服务

  Dim conn,Provider,DBPath

 

  ‘ 建立Connection 对象
  Set conn = Server.CreateObject("ADODB.Connection")
  Provider = "Provider=Microsoft.Jet.OLEDB.4.0;"
  DBPath = "Data Source=" & Server.MapPath( "数据库文件名" )
  ‘ 连接数据库,注意下面一行带有密码参数
  conn.Open Provider & DBPath&”Jet OLEDB:Database Password=”&assword
  Set CreateSecuredMdbRecordset = Server.CreateObject("ADODB.Recordset")
  ‘ 打开数据表,参数二为Connection对象
  CreateSecuredMdbRecordset.Open "数据表名", conn, 2, 2

1. ADO:用于在Microsoft SQL Server,Microsoft Access数据库中读取或存储数据 
2. File System:提供可用来访问计算机文件系统的方法和属性 
3. Content Linking:根据不同浏览器的性能显示不同的HTML内容 
4. Browser Capabilities:用来链接不同的HTML页面使其操作更简单 
5. AD Rotator:用于在网页上显示横幅广告,并可控制不同广告的显示频率 

  End Function

 

  3)DBF文件不是一个标准的数据库文件,只相当于标准数据库文件中的一个数据表,所以为了使用DBF文件,采用把所有的DBF文件放在一个目录下,这样把目录名看成标准数据中的数据库表,每一个DBF文件相当于标准数据库的数据表。下面函数中Directory是DBF所在的目录名,

ASP基本知识

  Function CreateDbfRecordset( 目录名, DBF文件名或Select语句 )

 

  Dim conn,Driver,SourceType,DBPath

ASP文件的扩展名为.asp,其中可以包括HTML标记,文本和脚本语言,其脚本语言代码包含于”<%……%>”之间。 
在VBScript中:注释可以是Rem,’等 
<% Option Explicit %>表示VBScript中的变量都要声明后才可使用,否则会出错。 
文件包含:<!--#include file=”myfirstinc.inc”--> 
<!--#include file=”myfirstasp.asp”--> 
<!--#include file=”myfirsttxt.txt”-->

  ‘ 建立Connection 对象
  Set conn = Server.CreateObject("ADODB.Connection")
  Driver = "Driver={Microsoft Visual FoxPro Driver};"
  SourceType = "SourceType=DBF;"
  DBPath = "SourceDB=" & Server.MapPath( "目录名" )

认识VBScript脚本的基本用法: 
1. 运算符 
2. 数据类型 
3. 常量,变量及数组 
4. 条件语句(if….then end if, if….then….Else end if) 
5. 循环语句(for….next, for each….next, do while…..loop) 
6. 过程 
7. 基本函数:分为数学类,字符串类,日期时间类,类型转换类,格式化类和判断类。 
a) 数学类:abs(), sqr(),rnd(随机数),round(四舍五入)… 
b) 字符串类:len(),left(),right(),mid(),strReverse(),split(),trim() 
c) 日期时间类:DateValue(),TimeValue(),Year(),Month,Day(),Hour(),Minute(),Second(),DateSerial(),TimeSerial(),Date(),Time(),Now(),DatePart(),DateAdd(),DateDiff()… 
d) 类型转换类:Cdate(),Cint(),Clng(),Cstr(),str(),Val(),Int(),Fix() 
e) 格式化类:FormatDateTime,FormatNumber,FormatPercent…. 
f) 判断类:IsDate,IsEmpty,IsNull,IsNumeric,IsObject… 
g) 信息对话框函数:InputBox,MsgBox… 
ASP内置对象说明: 
Response: 
语法格式:Response.集合|属性|方法(变量) 
Response的属性有:Buffer,Charset,ContentType,Expires,ExpiresAbsolute,Status. 
Response的方法有:AddHeader,AppendTolog,BinaryWrite,Clear,End,Flush,Redirect,Write 
Response的集合:Cookie. 
Request: 
语法格式: 
Request.集合(变量) 
集合:Form,QueryString,ServerVariable,Cookie,ClientCertificate 
1. Form:语法格式:Request.form(element)[(index).count].<%=request.form.count%>表单个数。<%=request.form(“name”)%> 
2. QueryString:语法格式:Request.QueryString(variable)[(index)|.count] 
3. ServerVariable:语法格式:Request.ServerVariable(服务器环境变量) 
4. Cookie:语法格式:Request.Cookies(Cookie名)[(key)|.attribute] 
使用Cookies集合: 
Response.Cookies(CookieName)[(key)|.attribute]=CookieValue 
Request.Cookies(CookieName)[(key)|.attribute] 
Application: 
语法格式:Application.属性|方法|事件|集合 
Application的方法:Lock(),UnLock() 
Application的事件:Application_OnStart,Application_OnEnd 
Application的集合:Contents,StaticObjects 
Application的属性:Application(“变量名”)=变量名 或 Set Application(“对象实例名”)=对象 
其实是定义全局变量,供多个用户使用。 
实例名(反过来是还原) 
Session: 
语法格式:Session.方法|事件|集合|属性 
Session方法:Abandon()用于清除Session对象<% Session.Abandon %> 
Session事件:Session_OnStart,Session_OnEnd 
Session集合:Contents,StaticObjects 
Session属性:SessionID,Timeout 
用户也可以自定义Session属性,其实是变量,就是我们前面说的会话变量。 
Session(“VariableName”)=VariableName 
Set Session(“ObjectName”)=ObjectName(反过来就是还原变量) 
网页变量的生命周期与传递 
全局变量,会话变量,网页变量 
用Request.QueryString集合在网页间传递变量 
用ASP的Application或Session对象在网页间传递变量。 
Session和Application的比较: 
1. 两者都允许用户自定义属性,即定义Application变量和Session变量。 
2. 两者都可以用于存取对象中的变量及对象实例 
3. 两者都有生命周期。Session开始于新连接者第一次连接时,终止于连接者若干时间内没有索取过任何信息;Application开始于IIS/PWS开始执行且出现第一个连接者的时候,终止于若干时间内没有任何连接者索取过信息,或IIS/PWS关闭时。 
4. 两者都是ASP文件共用的对象。Application对象是所有网页连接者共用的一个对象,Session对象是每位连接者独有的对象。 
5. 两者都有OnStart和OnEnd事件代码,但它们发生的时间不同。当一个Application应用程序与一个Session应用程序同时启动时,ASP会先执行Application_OnStart,接着才执行Session_OnStart;若在结束一个Session的同时结束Application应用程序,则会先执行Session_OnEnd,然后才执行Application_OnEnd. 
Global.asa文件与应用程序的初始化: 
Global.asa文件: 
网站计数器或统计在线人数等 
Server对象、ODBC与ADO组件: 
Server语法格式:Server.属性|方法 
Server属性:ScriptTimeout 
Server方法:CreateObject,HTMLEncode,URLEncode,MapPath 
Server的CreateObject方法是ASP中最实用,最强大的功能,它可以创建已注册到服务器上的ActiveX组件实例,是建立ActiveX对象的源头。 
Server.CreateObject(“组件名或组件注册名”) 
Set Myconn=Server.CreateObject(“ADODB.connection”)连接对象实例 
Set MyAds=Server.CreateObject(“MSWC.AdRotator”)广告对象实例 
ODBC:是连接数据库的通用接口,是由Microsoft公司开发并倡导的数据库连接标准。 
ADO:是ASP服务器内置组件及实现Web数据库操作的一个十分重要的组件。 
ADO组件是一个功能强大的组件,由7个接口组件组成,分别如下: 
1. Connection组件 
2. Recordset组件 
3. Command组件 
4. Parameter对象 
5. Porperty对象 
6. Error对象 
7. Field对象 
其中前三个组件需要使用Server.CreateObject方法来建立后才能使用。 
Connection:语法格式:Set Connection对象名=Server.CreateObject(“ADODB.Connection”) 
如:Set conn=Server.CreateObject(“ADODB.Connection”) 
Connection对象的方法: 
1. Open格式:Connection对象名.Open “连接数据库信息字符串”[;用户帐号][;用户密码]。该方法用于打开一个数据库并与其建立连接。有两种方法: 
a) 用DSN方法打开数据库:该方法先用ODBC建立对应数据库的数据源名(DSN),然后通过数据源名打开对应数据库。如下代码就可以打开数据源名qhbook所对应的数据库book.mdb。<% Set Conn=Server.CreateObject(“ADODB.Connection”) Conn.Open”qhbook;mydata;zhxing”%> 
b) 用全路径DSN方法打开数据库。如果在连接数据库前没有建立ODBC数据源,也可以采用直接指定ODBC驱动程序名称的方法建立与数据库的连接。此时的“连接数据库信息字符串”必须以driver开始,变为”Driver={ODBC驱动程序名};dbq=”&Server.MapPath(“数据库名”).如下: 
<% Set Conn=Server.CreateObject(“ADODB.Connection”) 
Conn.Open”Driver={Microsoft Access Driver(*.mdb)};dbq=”&Server.MapPath(“book.mdb”) %> 
如果是SQL Server类型,则驱动程序是Driver={SQL Server};如果是Oracle类型,则:Driver={Microsoft ODBC for oracle}. 
2. Close:关闭一个已经建立的连接对象及其相关对象。<% Conn.Close%><%Set Conn=nothing%> 
3. Execute: 
格式一:Connection对象名.Execute(SQL指令). 
格式二:Connection对象名.Execute(数据表名)。 
如下: 
<% SQL=”Select * from bookitem” Set rs=Conn.Execute(SQL) %>或: 
<% Set rs=Conn.Execute(“bookitem”)%> 
4. BeginTrans 
5. CommitTrans 
6. RollbackTrans 
Recordset组件: 
前面的Conn.Open方法知识打开并连接了相应的数据库,数据库通常是由一个或多个表组成,所以要存取其中的数据表还必须建立Recordset对象后,才能对其进行各种操作。 
1. 建立Recordset对象 
方法由以下几种: 
Set Recordset对象名=Server.CreateObject(“ADODB.Recordset”) 
Set Recordset对象名=Connection.Execute(“数据表名”) 
Set Recordset对象名=Connection.Execute(SQL指令) 
如下代码: 
<% 
Set Conn=Server.CreateObject(“ADODB.Connection”) 
Conn.Open”qhbook;mydata;zhxing” 
Set rs=Conn.Execute(“bookitem”) 
%>或 
<% 
Set Conn=Server.CreateObject(“ADODB.Connection”) 
Conn.Open”Driver={Microsoft Access Driver(*.mdb)};dbq=”&Server.MapPath(“book.mdb”) 
Set rs=Server.CreateObject(“ADODB.Recordset”) 
Exec=Select * from bookitem 
Rs.Open Exec,Conn 
%> 
Recordset对象的方法: 
Open:格式一:rs.Open Exec,Conn,1,1(记录集类型(0,1,2,3),锁定类型(1,2,3,4)) 
格式二:rs.Open bookitem,Conn,1,1 
Recordset类型:0:只读,当前数据记录只能向下移动 
1:只读,当前数据记录可以自由移动 
2:可读写,当前数据记录可以自由移动 
3:可读写,当前数据记录可以自由移动(注) 
锁定类型:1:默认值,用于打开只读的数据记录 
2:悲观锁定 
3:乐观锁定 
4:批次乐观锁定 
复杂一些~
Recordset.open Source,ActiveConnection,CursorType,LockType,Options 
各参数的含义是: 
Source : 可以是一个SQL查询、数据表或存储过程 
ActiveConnection: 可以是一个已打开的连接,或连接字符串 
CursorType:游标类型,定义如下 
0(adOpenForwardOnly): 只能在Recordset的记录中向前移动,但速度最快。 
1(adOpenKeyset):可以在Recordset中任意移动,其他用户所做的记录修改可见,但其他用户添加的记录不可见,删除的记录字段值不能被使用。 
2(adOpenDynamic):可以在Recordset中任意移动,其他用户增、删、改的记录都可见,但速度最慢。 
3(adOpenStatic):可以在Recordset中任意移动,其他用户增、删、改的记录都不可见。 
LockType:并发控制 
0(adLockReadOnly):recordset的记录为只读 
1(adLockPessimistic):只要保持Recordset为打开,别人就无法编辑该记录集中的记录. 
2(adLockOptimistic):当update recordset中的记录时,将记录加锁 
3(adLockBatchOptimistic):以批模式时更新记录时加锁 
Options:指定source传递命令的类型 
1(adCmdText):SQL语句 
2(adCmdTable):数据表的名字 
4(adCmdStoredProc):存储过程 
8(adCmdUnknown):未知类型

  ‘ 调用Open 方法打开数据库
  conn.Open Driver & SourceType & DBPath

Close方法 
<% rs.Close 
Set rs=nothing %> 
Recordset对象指针移动的方法: 
MoveFirst 
MoveLast 
MoveNext 
MovePrevious 
Move NumRecords,Start: 
Recordset对象的操作方法: 
Addnew:该方法可以向Recordset对象中添加一条记录 
Delete:删除Recordset对象中的一条记录 
Update:更新Recordset对象的当前记录 
CancelUpdate:取消更新,在更新方法之后才有效 
UpdateBatch:当锁定类型是4时,该方法用于保存对一个或多个记录的修改。 
Recordset对象的属性 
AbsolutePage 
AbsolutePosition 
ActiveConncetion 
BOF 
EOF 
Bookmark 
CacheSize 
CursorLocation 
CursorType 
EditMode 
Filter 
LockType 
MaxRecords 
PageCount 
PageSize 
RecordCount 
State 
Source 
Field对象与集合 
Field属性: 
Name,Value,Type,…. 
Field方法:AppendChunk,GetChunk 
Field集合: 
输出数据表表头: 
For I=0 to rs.fields.count-1 
Response.write”<td>”&rs.fields(i).name&”</td>”(注释:前面的有获取表单元素个数的,和此差不多。Request.form.count) 
Next 
输出表中各个记录的值: 
for I=0 to rs.fields.count-1 
response.write”<td>”&rs.fields(i).value&”</td>” 
next 
用ADO与SQL查询数据库 
建立数据库与数据源: 
本例用Microsoft Access 2000建立一个图书管理数据库,数据库名为book.mdb,其中的数据表是bookitem,只有一个表。 
bookitem表的结构: 
book_id(编号):长整形,主键 
book_name,book_author,book_price(货币),book_press,book_date(日期) 
建立此数据库的DSN,取名qhbook,帐号和密码为:internet 
用Select选取所有记录: 
格式:Select [Top N] 字段列表 From 数据表名(*表示所有字段,多字段用,隔开) 
1. Select * from bookitem 
2. Select book_name,book_author,book_price from bookitem 
3. Select * from bookitem where book_name=’孤独羊’ 
Select * from bookitem where book_name like ‘%原理%’(通配符%和_,其中%代表任意多个,_代表一个。) 
Select * from bookitem where book_price between 20.00 and 23.00 
Select * from bookitem where book_price>=20.00 and book_price<=23.00 
Select * from bookitem where book_price between 12.00 and 20.00 and book_name like ‘%系统%’ 
Select * from bookitem where book_date>=#2000/3/1# and book_name like’%原理%’ 
Where后的条件表达式可以用逻辑、比较、like,between…and,in/not,in,isNull/Is not Null等运算符来构成各种筛选。 
Select [Top N] 字段列表 From 数据表名 Where 条件表达式 
4. Select [Top N] 字段列表 From 数据表名 Where 条件表达式 order By 字段列表[Desc]降序排列: 
Select * from bookitem order By book_date Desc,book_price Desc 
Select * from bookitem Where book_date>=#2000/3/1# order By book_name 
Select Top 4 * from bookitem where book_date>=#2000/3/1# 
插入记录: 
格式一:Insert Into 数据表名[(字段名列表)] Values (字段值列表) 
格式二:rs.Open SQL,conn,2,3 
Addnew 
为各字段赋值 
Update(此法最常用,特别是和表单结合时,通过表单添加记录) 
如: 
Insert Into bookitem(book_name,book_author,book_price) Values (‘书名’,’作者’,’价格’) 
删除记录: 
格式一:Delete from 数据表名 Where 条件表达式(SQL语言的删除) 
格式二:rs.Open SQL,conn,2,3(记录集的删除方法) 
rs.MoveLast 
rs.Delete 
rs.Update(常用的一种方法) 
如:Delete from bookitem where book_author=’寡人’ 
修改记录: 
rs.Open SQL,conn,3,3 
rs.MoveLast 
rs(“book_author”)=”朕” 
rs.Update

  Set CreateDbfRecordset = Server.CreateObject("ADODB.Recordset")
  ‘ 打开DBF文件,参数二为Connection对象
  CreateDbfRecordset.Open DBF文件名或Select语句, conn, 2, 2

 

  End Function

 

  4)由Foxpro生成的DBC数据库与MDB数据库相似,都是一个数据库包含几个数据表的形式,所以对DBC数据库的存取方法与MDB数据库相似。

 

  Function CreateDbcRecordset( DBC数据库文件名, 数据表名或Select语句 )

 

  Dim conn,Driver,SourceType,DBPath

 

  ‘ 建立Connection 对象
  Set conn = Server.CreateObject("ADODB.Connection")
  Driver = "Driver={Microsoft Visual FoxPro Driver};"
  SourceType = "SourceType=DBC;"
  DBPath = "SourceDB=" & Server.MapPath( "DBC数据库文件名" )
  ‘ 连接数据库
  conn.Open Driver & SourceType & DBPath
  Set CreateDbcRecordset = Server.CreateObject("ADODB.Recordset")
  ‘ 打开数据表,参数二为Connection对象
  CreateDbcRecordset.Open "数据表名或Select语句", conn, 2, 2

 

  End Function

 

  5)将Excel97或Excel2000生成的XLS文件(book)看成一个数据库,其中的每一个工作表(sheet)看成数据库表。

 

  Function CreateExcelRecordset( XLS文件名,Sheet名 )

 

  Dim conn.Driver,DBPath

 

  ‘ 建立Connection对象
  Set conn = Server.CreateObject("ADODB.Connection")
  Driver = "Driver={Microsoft Excel Driver (*.xls)};"
  DBPath = "DBQ=" & Server.MapPath( "XLS文件名" )

 

  ‘ 调用Open 方法打开数据库
  conn.Open Driver & DBPath
  Set CreateExcelRecordset = Server.CreateObject("ADODB.Recordset")
  ‘ 打开Sheet,参数二为Connection对象,因为Excel ODBC驱动程序无法直接用‘sheet名来打开sheet,所以请注意以下的select语句
  CreateExcelRecordset.Open "Select * From ["&sheet&”$]”, conn, 2, 2

 

  End Function

 

  6)SQL Server属于Server级的数据库,使用时要求比较严格,必须要求输入用户名及密码才能使用。

 

  Function CreateSQLServerRecordset(计算机名称,用户ID, 用户密码,数据库名称 数据表或查看表或Select指令 )

 

  Dim Params, conn

 

  Set CreatSQLServerConnection = Nothing

  Set conn = Server.CreateObject("ADODB.Connection")

  Params = "Provider=SQLOLEDB.1"

  Params = Params & ";Data Source=" & Computer

  Params = Params & ";User ID=" & UserID

  Params = Params & ";Password=" & Password

  Params = Params & ".Initial Catalog="&数据库名称

  Conn open Paras

  Set CreateSQLServerRecordset = Server.CreateObject("ADODB.Recordset")

  CreateSQLServerRecordset.Open source, conn, 2, 2

  End Function

  利用上面的函数就可以打开常用类型的数据库,然后利用ADO的Recordset对象的增加记录、删除记录、修改记录等功能就可以对数据库进行操作。但是要说明的是,在实际开发中我们发现,如果使用DBF、DBC、Excel数据库,执行效率没有MDB数据库效率高,最好尽可能用MDB类型数据库。

  如果用用DBF、DBC、Excel数据库,下面几点要注意:Excel数据库只能读取、增加记录、修改记录,但不能删除记录;DBF、DBC<可以读取记录、增加记录、删除记录、修改记录,但是在增加记录时,任何一个字段值都不能为空,由此可看出局限性很大,所以尽可能地用MDB或SQL数据库。

  四、实例(存取Excel数据表)

  为了更进一步说明这些函数的用法,本文给出一个存取Excel数据表的例子,其它函数的存取方法与此类似。假设有一个如图2的名为1.xls的Excel文件, 含有三个工作表一班、二班、三班。下面得用上面的函数存取工作表“一班”的数据。

  图片 2
  图2

  编写ASP文件(文件名为1.asp)存取此Excel中文件。

  利用IE和PWS(Personal Web Server)后浏览结果如图3:

  图片 3

  图3

  参考文献:

  [1]DataBase and the World Wide Web Marianne Winslett, University of Illinois

  [2]

本文由bifa688.com发布,转载请注明来源:asp相关知识整理,陆拾一个人win柒的IIS七下asp与