這幾天有人問關於編應.dll的問題,這裡貼出一篇,嘿嘿!

來源:互聯網
上載者:User
問題 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所能實現的功能的小小的例子。只需要一點點努力,就可以得到一個在網路使用者中不同凡響的多功能應用程式。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。