2011-02-28 19 views
3

我已經使用ASP3.0/VBScript編寫了一個簡單的表單處理程序腳本,並希望將輸入的數據(通過網絡)添加到位於我的Access數據庫服務器。我使用的OLEDB方法連接,像這樣:ASP 3.0聲明不包含ADOVBS.inc的ADO常量

Cst = "PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _ 
"DATA SOURCE=" & Server.MapPath("DataBase.mdb") 

Dim Conn 
Set Conn = CreateObject("ADODB.Connection") 
Conn.Mode = 3 

Conn.Open Cst 

Blah Blah Blah... 

我現在有一個名爲ADOVBS.INC文件包括在頂部,但想拋棄它,因爲我覺得這是低效和浪費。我想定義常量,因爲我需要它們 - 但我不知道如何。我需要定義哪些ADO常量以及在哪裏?我正在使用的這本書基本上說「忘記包括那些400個左右的噓聲,不要問愚蠢的問題!」

任何具體的例子/幫助將不勝感激。

感謝,

回答

0

當然,答案是中「忘掉但─磅包括400個左右鼻屎在那裏,不問愚蠢的問題!」 :)

不過既然你堅持:

最好的辦法是封裝所有的數據訪問功能的一個.ASP
我們稱之爲dbHelper.asp

然後把所有的DB函數在那裏,像:

''// run a query and returns a disconnected recordset 
Function RunSQLReturnRS(sqlstmt, params()) 
    On Error Resume next 

    ''//Create the ADO objects 
    Dim rs , cmd 
    Set rs = server.createobject("ADODB.Recordset") 
    Set cmd = server.createobject("ADODB.Command") 

    ''// Init the ADO objects & the stored proc parameters 
    cmd.ActiveConnection = GetConnectionString() 
    cmd.CommandText = sqlstmt 
    cmd.CommandType = adCmdText 

    collectParams cmd, params 

    ''//Execute the query for readonly 
    rs.CursorLocation = adUseClient 
    rs.Open cmd, , adOpenForwardOnly, adLockReadOnly 
    If err.number > 0 then 
     BuildErrorMessage() 
     exit function 
    end if 

    ''//Disconnect the recordset 
    Set cmd.ActiveConnection = Nothing 
    Set cmd = Nothing 
    Set rs.ActiveConnection = Nothing 

    ''//Return the resultant recordset 
    Set RunSQLReturnRS = rs 

End Function 

在這一點上,你知道你ADO常量是在這個文件,並希望您可以開始替換它們。

9

你有幾個選項可供選擇。你可以用

<!-- 
    METADATA  
    TYPE="TypeLib"  
    NAME="Microsoft ActiveX Data Objects 2.5 Library"  
    UUID="{00000205-0000-0010-8000-00AA006D2EA4}"  
    VERSION="2.5" 
--> 

引用元數據庫在你的頁面(或您的global.asa文件),你可以簡單地複製幾個常數從adovbs文件到您的網頁,以支付您的需求。例如

Const adCmdText = 1  'Evaluate as a textual definition  
Const adCmdStoredProc = 4 'Evaluate as a stored procedure 
-1

常數的有關名單可以在這裏找到:http://www.4guysfromrolla.com/ASPScripts/PrintPage.asp?REF=%2Fwebtech%2Ffaq%2FBeginner%2Ffaq7.shtml

我會在這裏複製,以及:

'---- CursorTypeEnum Values ---- 
Const adOpenForwardOnly = 0 
Const adOpenKeyset = 1 
Const adOpenDynamic = 2 
Const adOpenStatic = 3 

'---- CursorOptionEnum Values ---- 
Const adHoldRecords = &H00000100 
Const adMovePrevious = &H00000200 
Const adAddNew = &H01000400 
Const adDelete = &H01000800 
Const adUpdate = &H01008000 
Const adBookmark = &H00002000 
Const adApproxPosition = &H00004000 
Const adUpdateBatch = &H00010000 
Const adResync = &H00020000 

應該夠在插入/選擇/刷新歷史記錄數據庫。