<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      在ASP中編寫DLL的問題

      [摘要]ActiveX DLL 可以用來保護代碼的一些部分,因為作為開發人員我們知道,用ASP進行工作時,源代碼控制是一個艱難而瑣碎的過程。ActiveX DLL 是經過編譯的代碼,沒有工程文件中的源代碼就不能對其進行修改。這就給開發人員帶來許多可能:開發自動操作公共程序的程序并將它們作為共享軟件來分發,...

      ActiveX DLL 可以用來保護代碼的一些部分,因為作為開發人員我們知道,用ASP進行工作時,源代碼控制是一個艱難而瑣碎的過程。ActiveX DLL 是經過編譯的代碼,沒有工程文件中的源代碼就不能對其進行修改。這就給開發人員帶來許多可能:開發自動操作公共程序的程序并將它們作為共享軟件來分發,分發至少有一些源代碼保護的ASP應用程序,不斷開發自己的ASP程序指令,以在一個全方位多功能的結果中提高ASP的性能。

      你所安裝的第一個ActiveX DLL 文件將注冊并安裝Visual Basic 6 的運行時間文件,它允許運行經過編譯的代碼。但是要注意,這還要求重新啟動服務器。當一個現存的DLL被安裝并使用之后,如果想要對其進行升級, 服務器就將給出一個錯誤信息提示,說此文件正被另一個過程所使用。要糾正這一問題,也要重新啟動服務器后才能完成DLL的升級。請記住在開發中要使用一個測試環境。

      雖然這個例子非常簡單,用一個ASP包含文件就可以輕易地實現,但當開發 ActiveX DLL 時,你可以使用 Visual Basic 的全套基本指令、系統外殼指令以及所有控制臺所能進行的操作,因此也就允許在線網站和內部互聯網的全部自動控制。這樣就把原來用ASP包含文件實現的 ActiveX DLL 的性能進行了拓展。

      在用組合框選擇填充的數據庫域中存儲查詢關鍵字的值,提高數據的完整性,輕易地在整個數據庫中進行層疊式更新,這些都是很普通的操作。舉例來說,現在有一個拼寫錯誤的文本描述,可以在查循表中進行修改,所有選擇了這個描述的相關條目都會自動地修改,因為我們已經存儲了與這個描述相關的數字。組合框以查詢表的內容為基礎,這些內容將查詢關鍵字的值與其描述聯系起來,如果系統使用了許多查詢的話,產生這些組合框的代碼會變得非常重復。本文用 ActiveX DLL 來簡化創建HTML組合框的程序,用一個數據庫查詢表中的內容進行填充。例子中的表名為lookup_table,它有以下域:

      Lookup_Key: 存儲在數據庫中的值
      Lookup_Field: 對查詢元素進行分類
      Lookup_Description: 顯示在組合框中的描述
      要創建ActiveX DLL,步驟如下:

      開始一個新的visual basic 工程文件;
      選擇ActiveX DLL 作為工程文件類型;
      在Properties 窗口,命名類模塊和工程文件。將工程文件命名為keiths_lookup ,將模塊命名為lookup 。 ASP引用DLL函數時要使用這些名字。以后在ASP碼中,將要引用一個名為keiths_lookup.lookup的服務器對象。
      用同樣的名字保存工程文件和模塊,其中工程文件的擴展名為.vbp ,類模塊的擴展名為.cls 。在本例中 工程文件的名字為keiths_lookup,模塊的名字為lookup。
      在工程菜單中,選擇References 。這是你可以使用的其它應用程序對象。在本例中,檢查Microsoft ActiveX data objects 2.0 庫和Microsoft ActiveX Data Objects Recordset 2.0 庫。
      在包含查詢表的IIS服務器數據庫中創建一個名為Sumnet 的數據集。這個數據庫沒有用戶名和口令。

      現在可以鍵入以下代碼:


      Public Function html_combo(comboname As String, Lookup_field As String) As String

      Dim outstring As String
      Dim conn As ADODB.Connection
      Dim rst As ADODB.Recordset
      Dim sqlstring As String

      Set conn = CreateObject("ADODB.Connection")
      Set rst = CreateObject("ADODB.Recordset")

      Sqlstring = "SELECT [Lookup_Description],[Lookup_Key] FROM
      [Lookup_Table] WHERE [Lookup_Field] = '" & Lookup_Field & "'"

      conn.Open "DSN=Sumnet;UID=;PWD=.;"
      rst.Open sqlstring, conn, 3, 3
      If Not rst.EOF Then
      rst.MoveFirst
      outstring = "< Select name='" & comboname & "' >"
      Do While Not rst.EOF
      outstring = outstring & "< Option Value='" &
      rst.Fields("lookup_key") & "' >" & _
      rst.Fields("lookup_description") & "< /Option > "
      rst.MoveNext
      Loop
      End If

      outstring = outstring & "< /Select >"
      html_combo = outstring
      rst.Close
      conn.Close

      End Function

      然后,保存工程文件和類模塊。

      編譯工程文件的步驟如下:

      啟動Visual Studio 6.0 工具中的Package Deployment Wizard ;
      選擇剛才創建的ActiveX 工程文件;
      點擊Package;
      選擇打包腳本名或使用默認值;
      選擇Standard Setup ;
      選擇一個放置安裝文件的文件夾;
      選擇單個cab;
      點擊Next使用其它默認選項;
      在IIS服務器上運行setup。

      現在可以通過ASP代碼使用DLL,因為在系統數據庫中它已經被注冊了。下面的ASP代碼將使用所創建的LL內部的函數。它將產生三個組合框,一個用州來填充,一個用位置填充,另外一個用年齡組。第一個參數將成為網頁上的對象名,第二個參數是用來填充組合框中查詢域的值。


      < %@ Language="VBSCRIPT" % >
      < %
      Set look = Server.CreateObject("keiths_lookup.lookup")
      % >

      < HTML >< BODY >

      < %=look.html_combo("State","States")% >
      < %=look.html_combo("Position","Positions")% >
      < %=look.html_combo("Age_group","Age_Groups")% >

      < /BODY >
      < /HTML >

      這個例子非常簡單。通過使用更多的參數,如表名、域名等,可以創建許多便攜式的函數,這些函數可以用在你的工作中所遇到的各種各樣的應用程序中。

      因為這些代碼是在服務器一端水平上運行的,所以客戶機不需要安裝任何東西。這僅僅是用ActiveX DLL所能實現的功能的小小的例子。只需要一點點努力,就可以得到一個在網絡用戶中不同凡響的多功能應用程序。
      (出處:熱點網絡)


      日韩精品一区二区三区高清