|
導(dǎo)讀數(shù)據(jù)庫,簡(jiǎn)而言之可視為電子化的文件柜——存儲(chǔ)電子文件的處所,用戶可以對(duì)文件中的數(shù)據(jù)進(jìn)行新增、截取、更新、刪除等操作。所謂“數(shù)據(jù)庫”是以一定方式儲(chǔ)存在一起、能與多個(gè)用戶共享、具有盡可能小的冗余度、與應(yīng)... 數(shù)據(jù)庫,簡(jiǎn)而言之可視為電子化的文件柜——存儲(chǔ)電子文件的處所,用戶可以對(duì)文件中的數(shù)據(jù)進(jìn)行新增、截取、更新、刪除等操作。所謂“數(shù)據(jù)庫”是以一定方式儲(chǔ)存在一起、能與多個(gè)用戶共享、具有盡可能小的冗余度、與應(yīng)用程序彼此獨(dú)立的數(shù)據(jù)集合。 建立Web項(xiàng)目和設(shè)置數(shù)據(jù)庫連接 在注冊(cè)了 ImageLoader 動(dòng)態(tài)鏈接庫之后,我們就可以建立Web項(xiàng)目了。我們使用微軟Visual InterDev 1.0 建立ASP頁面以及到微SQL Server數(shù)據(jù)庫的數(shù)據(jù)連接。 首先,打開微軟Visual InterDev。在文件File 菜單里,選擇新建(New)菜單項(xiàng)。在出現(xiàn)的對(duì)話框里,選中Web項(xiàng)目向?qū)В陧?xiàng)目名稱字段里輸入ImageLoad 。單擊確定(OK),完成后面兩步,結(jié)束向?qū)А? 可以看到, Visual InterDev 在工作空間(Workspace)窗口里自動(dòng)地生成了一個(gè)文件,叫做Global.asa。在用戶第一次查看Web程序里的頁面里,就會(huì)自動(dòng)生成這個(gè)文件。要連接SQL Server里的數(shù)據(jù)庫,選擇項(xiàng)目 | 加入項(xiàng)目(Project |Add To Project),然后選擇數(shù)據(jù)連接(Data Connection)。這里,選擇數(shù)據(jù)源對(duì)話框出現(xiàn),我們必須定義一個(gè)數(shù)據(jù)源名稱(DSN)。 單擊新建(New)按鈕,在列出的可用數(shù)據(jù)驅(qū)動(dòng)程序列表里,選擇SQL Server,然后單擊下一步(Next)。接著,在輸入框里輸入 Grocevb 作為DSN。接下來的幾步很容易完成,不再詳述。 下面,出現(xiàn)了SQL Server 登錄對(duì)話框。輸入服務(wù)器名稱,登錄ID和口令,并單擊選項(xiàng)(Option)按鈕。從列出的可用數(shù)據(jù)庫列表里,選擇Grocevb,單擊確定(OK)。在結(jié)束了全部以上步驟之后,就返回到了選擇數(shù)據(jù)源對(duì)話框。在這里,從DSN列表里單擊文件名 Grocevb.dsn,然后完成后面幾步結(jié)束這段操作。 現(xiàn)在,可以雙擊Global.asa,查看以上步驟在這個(gè)文件里生成的代碼。代碼定義了連接SQL Server數(shù)據(jù)庫所必需的一些變量。 為了初始化類 clsImageLoader ,必須在Global.asp的開始放兩行代碼。我們?cè)诹斜?nbsp;C里列出了Global.asa里的代碼。注意clsImageLoader 是一個(gè)會(huì)話范圍內(nèi)的對(duì)象。 列表 C: Global.asa <OBJECT RUNAT=Server SCOPE=Session ID=objImageLoader PROGID="ImageLoader.clsImageLoader"> </OBJECT> <SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Session_OnStart Session("Grocevb_ConnectionString") = "DRIVER=SQL Server; SERVER=(local); UID=sa;PWD=;APP=Microsoft (R) Developer Studio;WSID=JIA; DATABASE=Grocevb;UseProcForPrepare=0" Session("Grocevb_ConnectionTimeout") = 15 Session("Grocevb_CommandTimeout") = 30 Session("Grocevb_RuntimeUserName") = "sa" Session("Grocevb_RuntimePassword") = "" End Sub Sub Session_OnEnd set objImageLoader = Nothing End Sub </SCRIPT> 建立ASP頁面 為了連接到數(shù)據(jù)庫,并和ImageLoader這個(gè)動(dòng)態(tài)鏈接庫通信,我們?cè)赪eb項(xiàng)目里建立了一個(gè)ASP文件。方法是在文件(File)菜單里選擇新建(New)菜單項(xiàng),在文件(Files)標(biāo)簽卡中選擇ASP頁面圖標(biāo),在輸入框里輸入文件名稱。我們把這個(gè)頁面命名為default.asp。在efault.asp 里包含的代碼如列表 D所示。 列表 D: default.asp <% Set dbConn = Server.CreateObject("ADODB.Connection") dbConn.ConnectionTimeout = Session("Grocevb_ConnectionTimeout") dbConn.CommandTimeout = Session("Grocevb_CommandTimeout") dbConn.Open Session("Grocevb_ConnectionString"), Session("Grocevb_RuntimeUserName"), _ Session("Grocevb_RuntimePassword") Set cmdTemp = Server.CreateObject("ADODB.Command") Set rstProduct = Server.CreateObject("ADODB.Recordset") cmdTemp.CommandText = "SELECT prod_id, prod_name, prod_desc, prod_unitprice, & _ " prod_unitquant, prod_imagetype " & _ "FROM Products ORDER BY prod_name" cmdTemp.CommandType = 1 Set cmdTemp.ActiveConnection = dbConn rstProduct.Open cmdTemp, , 0, 1 objImageLoader.DbName = "Grocevb" objImageLoader.TableName = "Products" objImageLoader.NameOfImageColumn = "prod_image" objImageLoader.NameOfImageTypeColumn = "prod_imagetype" objImageLoader.NameOfImageIdColumn = "prod_id" objImageLoader.OpenConnection %> <HTML> <HEAD> <TITLE>從SQL Server裝載圖片的示例</TITLE> </HEAD> <BODY bgcolor="#FFFFFF" TOPMARGIN=8 LEFTMARGIN=4> <%Do While Not rstProduct.EOF %> <%ProdId = rstProduct("prod_id") %> <% objImageLoader.CreateTempImageFile(ProdId) %> <% FileName = "images/" & objImageLoader.ImageFile(ProdId) %> <TABLE border=1 cellpadding=0 cellspacing=0 width=100%> <TABLE border=0 cellpadding=5 cellspacing=0 width=100% cols=2> <td width=30%> <IMG ALIGN=BOTTOM SRC= <% =FileName %>> <p> </p> <font size=2>Image type: <% = rstProduct("prod_imagetype") %> </td> <td width=70%> <p align=center><font size=4><% =rstProduct("prod_name") %></font></p> <p align=center><% =rstProduct("prod_desc") %></p> </td> </TABLE> <p> </p> <TABLE border=0 cellpadding=5, cellspacing=0 width=100% cols=2> <td width=50%> <p align=left>Unit quantity: <% = rstProduct("prod_unitquant") %></P> </td> <td width=50%> <p align=left>Unit price: <% =rstProduct("prod_unitprice") %></p> </td> </TABLE> </TABLE> <p> </p> <% rstProduct.MoveNext %> <% Loop %> </BODY> </HTML> 注意:類ImageLoader 里定義的CreateTempImageFile 方法和ImageFile 屬性(只讀)需要圖片ID作為參數(shù)。在這個(gè)例子里,圖片ID就是表Products的主關(guān)鍵字(prod_id) 。所以, prod_id 的值必須傳遞給動(dòng)態(tài)鏈接庫。 總結(jié) 在這篇文章里,我們演示了一個(gè)方法,使用ActiveX動(dòng)態(tài)鏈接庫和ASP,可以從微軟SQL Server服務(wù)器把圖片裝載到Web瀏覽器。它已經(jīng)表明,這個(gè)方法在快速開發(fā)、容易使用和自定義Web頁面的靈活上都有優(yōu)勢(shì)。動(dòng)態(tài)鏈接庫被用來連接數(shù)據(jù)庫,提取圖片數(shù)據(jù),把圖片數(shù)據(jù)放入文件。ASP頁面則負(fù)責(zé)與SQL數(shù)據(jù)庫和動(dòng)態(tài)鏈接庫通信。我們已經(jīng)介紹了設(shè)置SQL數(shù)據(jù)庫和Web項(xiàng)目的操作過程。 雖然這篇文章里的動(dòng)態(tài)鏈接庫和數(shù)據(jù)庫的功能做了簡(jiǎn)化,但這里介紹的步驟對(duì)于其它任何強(qiáng)大復(fù)雜的Web項(xiàng)目都是有效的。 全新的路由器不僅讓你更穩(wěn)定快速地連接無線網(wǎng)絡(luò),更可以讓家中的智能設(shè)備連接在一起。 |
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!