一、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
oracle
"Provider=OraOLEDB.Oracle;data source=dbname;user
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'"
而我們在一般情況下使用Access的數據庫比較多,在這裡建議連接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")
有許多初學者在遇到數據庫連接時總是會出問題,然而使用上面的驅動程序只要你的數據庫路徑選對了就不會出問題了。
sqlserver的連接可以如下:
Set conn=Server.CreateObject("ADODB.Connection")
on error resume next
connstr="Provider=SQLOLEDB;Password=***;Persist Security Info=True;User Catalog=msdb;Data Source=localhost;Connect Timeout=15"
conn.Open connstr
經常會在連接DB的時候用到,就是不知道代表什麼意思。。。
RS.OPEN SQL,CONN,A,B
A:
ADOPENFORWARDONLY(=0)
只讀,且當前數據記錄只能向下移動
ADOPENKEYSET(=1)
只讀,當前數據記錄可自由移動
ADOPENDYNAMIC(=2)
可讀寫,當前數據記錄可自由移動
ADOPENSTATIC(=3)
可讀寫,當前數據記錄可自由移動,可看到新增記錄
B:
ADLOCKREADONLY(=1)
缺省鎖定類型,記錄集是只讀的,不能修改記錄
ADLOCKPESSIMISTIC(=2)
悲觀鎖定,當修改記錄時,數據提供者將嘗試鎖定記錄以確保成功地編輯記錄。只要編輯一開始,則立即鎖住記錄。
ADLOCKOPTIMISTIC(=3)
樂觀鎖定 ,直到用Update方法提交更新記錄時才鎖定記錄。
ADLOCKBATCHOPTIMISTIC(=4)
批量樂觀鎖定,允許修改多個記錄,只有調用UpdateBatch方法後才鎖定記錄。
當不需要改動任何記錄時,應該使用只讀的記錄集,這樣提供者不用做任何檢測。
對於一般的使用,樂觀的鎖定可能是最好的選擇,因為記錄只被鎖定一小段時間,數據在這段時間被更新。這減少了資源的使用。