初學ASP網頁編程技術,總是遇到鏈接數據庫是敗,現在收集整理的一些相關資料,以防忘記
用ASP連接DBF、DBC、MDB、Excel、SQL Server型數據庫的方法:
一、ASP的對象存取數據庫方法
在ASP中,用來存取數據庫的對象統稱ADO(Active Data Objects),主要含有三種對象:Connection、Recordset 、Command
Connection:負責打開或連接數據
Recordset:負責存取數據表
Command:負責對數據庫執行行動查詢命令
二、連接各數據庫的驅動程序
連接各數據庫可以使用驅動程序,也可以使用數據源,不過我建議大家使用驅動程序,因爲使用驅動程序非常方便、簡單,而使用數據源比較麻煩。
ODBC鏈接
適合數據庫類型
|
鏈接方式
|
access | "Driver={microsoft access driver (*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;" |
dBase | "Driver={microsoft dbase driver (*.dbf)};driverid=277;dbq=------------;" |
Oracle | "Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;" |
MSSQL server | "Driver={sql server};server=servername;database=dbname;uid=sa;pwd=pass;" |
MS text | "Driver={microsoft text driver (*.txt; *.csv)};dbq=-----;extensions=asc,csv,tab,txt;Persist SecurityInfo=false;" |
Visual Foxpro | "Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;" |
MySQL | "Driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;" |
OLEDB鏈接
適合的數據庫類型
|
鏈接方式
|
access | "Provider=microsoft.jet.oledb.4.0;data source=your_database_path;user id=admin;password=pass;" |
Oracle | "Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;" |
MS SQL Server | "Provider=SQLOLEDB;data source=machinename;initial catalog=dbname;userid=sa;password=pass;" |
MS text | "Provider=microsof.jet.oledb.4.0;data source=your_path;Extended Properties'text;FMT=Delimited'" |
注意Driver或者Provider等號右邊的表達式寫法:比如:Driver={Microsoft Access Driver (*.mdb)}; "Driver"和"(*.mdb)"之間一定要有"空格",要和ODBC數據源管理器(不用配置這裏)中描述的數據源驅動程序名稱一模一樣纔可以測試成功,否則就會提示"【Microsoft】【ODBC驅動程序管理器】未發現數據源名稱並且未指定驅動程序"
連接Access數據庫有3種方式:即建立DSN(數據源名),使用非DSN和OLE DB
一 ,用DSN方式連接
1,點擊開始->控制面板->管理工具->ODBC數據管理器,選擇“系統DSN”選項卡,點“添加”,在彈出的“創建新數據源”窗口中選擇Microsoft Access Driver(*.mdb);點擊完成。
2,填ODBC Microsoft Access安裝窗口的數據源名(自擬,最好能說明數據庫的基本信息,如功能,這裏假設爲Game),點“選擇”按鈕,找到你建立的數據庫的位置,選中文件,點擊“確定”按鈕,至此,DSN創建成功
通過DSN訪問數據庫的完整代碼如下
<%
Dim conn
Set conn=Server.CreateObiect("ADODB.Connection")
conn.Open "DSN=Game"
%>
二,通過ADO連接數據庫,代碼如下
<%
Dim conn
Set conn=Server.CreateObiect("ADODB.Connection") ---聲明變量conn,是ASP程序與數據庫建立鏈接
conn.open "Driver={Microsoft Access Driver(*.mdb)};DBQ="&Server.MapPath(Database/db_school.mdb")
Set rs=Server.CreateObject("ADODB.Recordset")
%>
1, Driver={Microsoft Access Driver(*.mdb)};該句指定系統使用Access ODBC驅動處理
2., DBQ:用於指定大考的額數據庫文件,它必須是完整的數據庫路徑。例如"C:/inetpub/wwwroot/Database/db_school.mdb"
3, Server.MapPath:該方法用於獲取數據庫的完整路徑,放置程序的目錄發生變化不會影響執行
同理,也可以連接Excel電子表格
三,通過OLE DB鏈接數據庫
OLE DB是基於COM模型的數據庫訪問接口,是一種驅動程序級別的底層數據訪問界面
1,連接字符串的標準訪問方式如下:
<%
Dim oConn
Set oConn=Server.CreateObject("ADODB.Connection")
oConn.open "Provider=Microsoft.Jet.OLEDB.4.0; _
Data Source=&Server.MpPath("Database/myDb.mdb")&;_
Persist Security Info=False"
Set rs=Server.CreateObject("ADODB.Recordset)
%>
Persist Security Info屬性的意思是表示是否保存安全信息,其實可以簡單的理解爲"ADO在數據庫連接成功後是否保存密碼信息",True表示保存,False表示不保存
大多數情況下,我們使用的是小型數據庫Microsoft Access,大家都介紹使用一下這種方式
dim conn
set conn = server.createobject("adodb.connection")
conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.mappath("../db/bbs.mdb")
其中../db/bbs.mdb是你的數據庫存放的相對路徑!如果你的數據庫和ASP文件在同一目錄下,你只要這樣寫就可以了:
dim conn
set conn = server.createobject("adodb.connection")
conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.mappath("bbs.mdb")
有許多初學者在遇到數據庫連接時總是會出問題,然而使用上面的驅動程序只要你的數據庫路徑選對了就不會出問題了