ADO如何透過ODBC存取各種資料庫呢?
本單元介紹如何透過ODBC存取以下各種資料庫:
存取
Access資料庫ADO如何透過ODBC存取如下的Access資料庫呢?
若要透過
ODBC存取Access資料庫,首先直接於ASP程式碼中指定所要連結的資料庫,使用「Server.CreateObject("ADODB.Connection")」建立連線的物件後,於Driver設定為Access ODBC驅動程式名稱,使用「Open」直接連結到待存取查詢資料庫。ASP程式碼如下:
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\ntopsamp\ntopsamp.mdb"
其中於
DBQ直接設定Access資料庫的真實路徑檔案名稱。您可以使用Server.MapPath("資料庫檔案名稱") 以取得資料庫的真實路徑檔案如下:cn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("ntopsamp.mdb")
接著設定待執行的
SQL指令為「SELECT * FROM 著作」以查詢所有的資料,將查詢的資料放置於所定義rs的Recordset當中,ASP程式碼如下:Set rs = Server.CreateObject("ADODB.Recordset")
SqlStr = "SELECT * FROM
著作"rs.Open SqlStr,cn,1,1
最後使用
Recordset屬性和方法與HTML碼配合,以顯示執行的結果,ASP程式碼如下:<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0><TR>
<TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">
書名</FONT></TD><TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">
出版</FONT></TD><TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">
圖片</FONT></TD><TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">
簡介</FONT></TD><% Do while not rs.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs("
書名") %></TD><TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs("
出版") %></TD><TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs("
圖片") %></TD><TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs("
簡介") %></TD></TR>
<%
rs.MoveNext
Loop
rs.Close
Set cn = Nothing
%>
</TABLE>
其中
Do while not rs.EOF的迴圈將rs的Recordset當中的資料一一顯示出來,由rs(“欄位名稱”) ,讀取此筆資料指定欄位的資料,顯示後由rs.MoveNext,將指標移到下一筆。以上的
ASP程式碼rs41.asp,於用戶端使用瀏覽器,瀏覽執行的結果,顯示資料庫內所有的資料。SQL Server
ADO如何透過ODBC存取如下的SQL Server資料庫呢?
請注意,若要執行本單元的
SQL Server範例rs42.asp,請先參考「如何轉換Access資料到SQL Server呢?」單元,新建立一個叫做NtopSamp的Database,並將Access範例資料NtopSamp.mdb轉換到SQL Server。若要透過
ODBC存取SQL Server資料庫,首先直接於ASP程式碼中指定所要連結的資料庫,使用「Server.CreateObject("ADODB.Connection")」建立連線的物件後,於Driver設定為SQL Server ODBC驅動程式名稱,使用「Open」直接連結到待存取查詢資料庫,ASP程式碼如下:<%
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "driver={SQL Server};server=(Local);uid=sa;pwd=;database=NtopSamp"
Set rs = Server.CreateObject("ADODB.Recordset")
SqlStr = "SELECT * FROM
著作"rs.Open SqlStr,cn,1,1
%>
於
ASP程式碼中Server=…當中設定資料庫電腦的IP位址或為local。接著設定待執行的
SQL指令為「SELECT * FROM 著作」以查詢所有的資料,將查詢的資料放置於所定義rs的Recordset當中,最後使用Recordset屬性和方法與HTML碼配合,以顯示執行的結果,相關的ASP程式碼與執行結果與上例Access資料庫相同,請參考範例rs42.asp。Excel
ADO如何透過ODBC存取如下的Excel資料呢?
若要透過ODBC存取Excel資料,首先直接於ASP程式碼中指定所要連結的資料庫,使用「Server.CreateObject("ADODB.Connection")」建立連線的物件後,於Driver設定為Excel ODBC驅動程式名稱,於DBQ直接設定Excel資料的真實路徑檔案名稱,可以使用Server.MapPath("著作.xls") 以取得Excel檔的真實路徑檔案,使用「Open」直接連結到待存取查詢資料庫,ASP程式碼如下:
<%
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & Server.MapPath("
著作.xls")Set rs = Server.CreateObject("ADODB.Recordset")
SqlStr = "SELECT * FROM
著作"rs.Open SqlStr,cn,1,1
%>
接著設定待執行的
SQL指令為「SELECT * FROM 著作」以查詢所有的資料,將查詢的資料放置於所定義rs的Recordset當中,最後使用Recordset屬性和方法與HTML碼配合,以顯示執行的結果,相關的ASP程式碼與執行結果與上例Access資料庫相同,請參考範例rs43.asp。
請注意,
ASP程式碼對Excel資料可以做查詢、新增、和修改,但是無法做刪除的動作。dBase
ADO如何透過ODBC存取dBase資料庫的資料呢?
若要透過ODBC存取dBase資料庫的資料,首先直接於ASP程式碼中指定所要連結的資料庫,使用「Server.CreateObject("ADODB.Connection")」建立連線的物件後,於Driver設定為dBase ODBC驅動程式名稱,於DBQ直接設定dBase資料庫檔案的真實路徑譬如c:\ntopsamp\ado或c:\ ntopsamp\ado\,使用「Open」直接連結到待存取查詢資料庫,ASP程式碼如下:
<% Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Driver={ Microsoft dBase Driver (*.dbf)}; DBQ=c:\ntopsamp
\ado"Set rs = Server.CreateObject("ADODB.Recordset")
SqlStr = "SELECT * FROM
著作"rs.Open SqlStr,cn,1,1 %>
請注意
DBQ不能夠包括檔案名稱,否則無法執行,由於
dBase並沒有資料表的觀念,SQL指令所指的資料表名稱即為dBase檔案名稱,譬如「著作.dbf」,其資料表名稱為「著作」。接著設定待執行的
SQL指令為「SELECT * FROM 著作」以查詢所有的資料,將查詢的資料放置於所定義rs的Recordset當中,您也可以使用「rs.Open "著作",cn,1,1 」來代替最後兩行程式碼, 最後使用Recordset屬性和方法與HTML碼配合,以顯示執行的結果,相關的ASP程式碼與執行結果與上例Access資料庫相同,請參考範例rs44.asp。Text
ADO如何透過ODBC存取如下的Text文字檔案的資料呢?
若要透過ODBC存取Text文字檔案的資料,首先直接於ASP程式碼中指定所要連結的資料庫,使用「Server.CreateObject("ADODB.Connection")」建立連線的物件後,於Driver設定為Text ODBC驅動程式名稱,於DBQ直接設定Text文字檔案的真實路徑譬如c:\ntopsamp\ado或c:\ ntopsamp\ado\,請注意不包括檔案名稱,否則無法執行,使用「Open」直接連結到待存取查詢資料庫,ASP程式碼如下:
<%
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=c:\ ntopsamp
\ado"Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "
著作",cn,1,1%>
請注意
DBQ不能夠包括檔案名稱,否則無法執行,由於
Text文字檔案並沒有資料表的觀念,SQL指令所指的資料表名稱即為Text文字檔案名稱,譬如「著作.txt」,其資料表名稱為「著作」。接著設定待執行的
SQL指令為「SELECT * FROM 著作」以查詢所有的資料,將查詢的資料放置於所定義rs的Recordset當中,最後使用Recordset屬性和方法與HTML碼配合,以顯示執行的結果,相關的ASP程式碼與執行結果與上例Access資料庫相同,請參考範例rs45.asp。
請注意,
ASP程式碼對Text文字檔案的資料可以做查詢、新增、和修改,但是無法做刪除的動作。