Function CreateSecuredMdbRecordset( 數(shù)據(jù)庫文件名, 數(shù)據(jù)表名或Select語句,password )
Dim conn,Provider,DBPath
‘ 建立Connection 對象
Set conn = Server.CreateObject("ADODB.Connection")
Provider = "Provider=Microsoft.Jet.OLEDB.4.0;"
DBPath = "Data Source=" & Server.MapPath( "數(shù)據(jù)庫文件名" )
‘ 連接數(shù)據(jù)庫,注意下面一行帶有密碼參數(shù)
conn.Open Provider & DBPath&”Jet OLEDB:Database Password=”&assword
Set CreateSecuredMdbRecordset = Server.CreateObject("ADODB.Recordset")
‘ 打開數(shù)據(jù)表,參數(shù)二為Connection對象
CreateSecuredMdbRecordset.Open "數(shù)據(jù)表名", conn, 2, 2
End Function
3)DBF文件不是一個標準的數(shù)據(jù)庫文件,只相當于標準數(shù)據(jù)庫文件中的一個數(shù)據(jù)表,所以為了使用DBF文件,采用把所有的DBF文件放在一個目錄下,這樣把目錄名看成標準數(shù)據(jù)中的數(shù)據(jù)庫表,每一個DBF文件相當于標準數(shù)據(jù)庫的數(shù)據(jù)表。下面函數(shù)中Directory是DBF所在的目錄名,
Function CreateDbfRecordset( 目錄名, DBF文件名或Select語句 )
Dim conn,Driver,SourceType,DBPath
‘ 建立Connection 對象
Set conn = Server.CreateObject("ADODB.Connection")
Driver = "Driver={Microsoft Visual FoxPro Driver};"
SourceType = "SourceType=DBF;"
DBPath = "SourceDB=" & Server.MapPath( "目錄名" )
‘ 調(diào)用Open 方法打開數(shù)據(jù)庫
conn.Open Driver & SourceType & DBPath
Set CreateDbfRecordset = Server.CreateObject("ADODB.Recordset")
‘ 打開DBF文件,參數(shù)二為Connection對象
CreateDbfRecordset.Open DBF文件名或Select語句, conn, 2, 2
End Function
4)由Foxpro生成的DBC數(shù)據(jù)庫與MDB數(shù)據(jù)庫相似,都是一個數(shù)據(jù)庫包含幾個數(shù)據(jù)表的形式,所以對DBC數(shù)據(jù)庫的存取方法與MDB數(shù)據(jù)庫相似。
Function CreateDbcRecordset( DBC數(shù)據(jù)庫文件名, 數(shù)據(jù)表名或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數(shù)據(jù)庫文件名" )
‘ 連接數(shù)據(jù)庫
conn.Open Driver & SourceType & DBPath
Set CreateDbcRecordset = Server.CreateObject("ADODB.Recordset")
‘ 打開數(shù)據(jù)表,參數(shù)二為Connection對象
CreateDbcRecordset.Open "數(shù)據(jù)表名或Select語句", conn, 2, 2
End Function
5)將Excel97或Excel2000生成的XLS文件(book)看成一個數(shù)據(jù)庫,其中的每一個工作表(sheet)看成數(shù)據(jù)庫表。
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文件名" )
‘ 調(diào)用Open 方法打開數(shù)據(jù)庫
conn.Open Driver & DBPath
Set CreateExcelRecordset = Server.CreateObject("ADODB.Recordset")
‘ 打開Sheet,參數(shù)二為Connection對象,因為Excel ODBC驅(qū)動程序無法直接用‘sheet名來打開sheet,所以請注意以下的select語句
CreateExcelRecordset.Open "Select * From ["&sheet&”$]”, conn, 2, 2
End Function
6)SQL Server屬于Server級的數(shù)據(jù)庫,使用時要求比較嚴格,必須要求輸入用戶名及密碼才能使用。
Function CreateSQLServerRecordset(計算機名稱,用戶ID, 用戶密碼,數(shù)據(jù)庫名稱 數(shù)據(jù)表或查看表或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="&數(shù)據(jù)庫名稱
Conn open Paras
Set CreateSQLServerRecordset = Server.CreateObject("ADODB.Recordset")
CreateSQLServerRecordset.Open source, conn, 2, 2
End Function
利用上面的函數(shù)就可以打開常用類型的數(shù)據(jù)庫,然后利用ADO的Recordset對象的增加記錄、刪除記錄、修改記錄等功能就可以對數(shù)據(jù)庫進行操作。但是要說明的是,在實際開發(fā)中我們發(fā)現(xiàn),如果使用DBF、DBC、Excel數(shù)據(jù)庫,執(zhí)行效率沒有MDB數(shù)據(jù)庫效率高,最好盡可能用MDB類型數(shù)據(jù)庫。
如果用用DBF、DBC、Excel數(shù)據(jù)庫,下面幾點要注意:Excel數(shù)據(jù)庫只能讀取、增加記錄、修改記錄,但不能刪除記錄;DBF、DBC<可以讀取記錄、增加記錄、刪除記錄、修改記錄,但是在增加記錄時,任何一個字段值都不能為空,由此可看出局限性很大,所以盡可能地用MDB或SQL數(shù)據(jù)庫。
四、實例(存取Excel數(shù)據(jù)表)
為了更進一步說明這些函數(shù)的用法,本文給出一個存取Excel數(shù)據(jù)表的例子,其它函數(shù)的存取方法與此類似。假設(shè)有一個如圖2的名為1.xls的Excel文件, 含有三個工作表一班、二班、三班。下面得用上面的函數(shù)存取工作表“一班”的數(shù)據(jù)。
圖2
編寫ASP文件(文件名為1.asp)存取此Excel中文件。
利用IE和PWS(Personal Web Server)后瀏覽結(jié)果如圖3:
圖3