這種作法是比較專業但也是很安全的也是現在比較流行的作法,但是現在許多的人只是作了一半,只是將資料名改成ASP而以,這樣的話直接用FlashGet之類的下載工具一樣可以將資料庫下載,這種方式的正確作法有兩步:
第一步:在資料庫內建立一個欄位,名稱隨意,類型是OLE對象,內容設定為單位元組型的" "<%",即(ASP代碼chrB(asc("<")) & chrB(asc("%"))的運行結果)
第二步:將資料庫改名為ASP
這樣從URL上直接請求這個資料庫將會提示"缺少關閉指令碼分隔字元",從而拒絕下載,因為這個方式比較麻煩我在網上找了一段小代碼來完成OLE對象的插入工作,只要將資料庫名設定好,然後放在和資料庫內一目錄運行一下就可以了。
代碼全文如下:
<%
db="d.mdb" '這裡改成您的資料庫地址
set conn=server.createobject("Adodb.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db)
conn.open connstr
conn.execute("create table notdownload(notdown oleobject)")
set rs=server.createobject("adodb.recordset")
sql="select * from notdownload"
rs.open sql,conn,1,3
rs.addnew
rs("notdown").appendchunk(chrB(asc("<")) & chrB(asc("%")))
rs.update
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
這段代碼運行完之後將會在資料庫內產生一個nodownload表,表內欄位是notdown。如果資料庫內已有同名的資料表存在請將代碼內的nodownload改成自己想要的資料表名即可。