用ASP存取各种常用类型数据库(五)

发表于:2007-06-30来源:作者:点击数: 标签:
6) SQL Server属于Server级的 数据库 ,使用时要求比较严格,必须要求输入用户名及密码才能使用。 Function Create SQLServer Recordset(计算机名称,用户ID, 用户密码,数据库名称 数据表或查看表或Select指令 ) Dim Params, conn Set CreatSQLServerConnecti
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文件, 含有三个工作表一班、二班、三班。下面得用上面的函数存取工作表“一班”的数据。




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

此处是asp源代码:
<%

@# 建立Connection对象

Function CreateExcelRecordset(xlsfile,sheet)

Dim rs,conn,Driver,DBPath

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

Driver = "Driver={Microsoft Excel Driver (*.xls)};"

DBPath = "DBQ=" & Server.MapPath( "xlsfile" )

@# 调用Open 方法连接数据库

conn.Open Driver & DBPath

set CreateExcelRecordset = Server.CreateObject("ADODB.Recordset")

@# 打开Sheet表,参数二@#>Connection对象

CreateExcelRecordset.Open "Select * From ["&sheet&"$]",conn, 2, 2

End Function

%>

<HTML>

<BODY bgcolor="#FFFFFF">

<TABLE BORDER=1>

<TR BGCOLOR=#00FFFF>

<%

@#本行是关键行,对函数的引用

@# set rs=CreateExcelRecordset("1.xls","一班")

Part I输出“表头名称”且表头的背景的颜色为#00FFFF

@# For i=0 to rs.Fields.Count-1

Response.Write "<TD>" & rs(i).Name & "</TD>"

Next

%>

</TR>

<%

@# Part @#>输出数据表的“内容”?

rs.MoveFirst @# 将目前的数据记录移到第一项

While Not rs.EOF @# 判断是否过了最后一项

Row = "<TR>"

For i=0 to rs.Fields.Count-1

Row = Row & "<TD>" & rs(i) & "</TD>"

Next

Response.Write Row & "</TR>"

rs.MoveNext @# 移到下一项

Wend

%>

</TABLE></CENTER>

</BODY>

</HTML>



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

参考文献:

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

[2]http://www.aspobjects.com

原文转自:http://www.ltesting.net