ASP 3.0 声明 ADO 常量,不包括 ADOVBS.inc

ASP 3.0 Declare ADO Constants w/out Including ADOVBS.inc

提问人:ASP Pee-Wee 提问时间:3/1/2011 更新时间:4/5/2011 访问量:3102

问:

我使用 ASP3.0/VBScript 编写了一个简单的表单处理程序脚本,并希望将输入的数据(通过 Web)添加到位于我服务器上的 Access 数据库中。我使用 OLEDB 方法进行连接,如下所示:

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 个左右的鼻屎,不要问愚蠢的问题!

任何具体的例子/帮助将不胜感激。

谢谢

asp-经典

评论


答:

0赞 Eduardo Molteni 3/1/2011 #1

当然,答案是“忘了那个——英镑,把那 400 个左右的鼻屎包括在里面,不要问愚蠢的问题:)!

但既然你坚持:

最好的方法是将所有数据访问功能封装在一个。ASP
我们称之为
dbHelper.asp

然后把所有的数据库函数放在那里,比如:

''// 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赞 Dee 3/1/2011 #2

您有几个选项可供选择。您可以在页面(或 global.asa 文件中)引用元数据库

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

您只需将一些常量从 ADOVBS 文件复制到您的页面中即可满足您的需求。例如

Const adCmdText = 1      'Evaluate as a textual definition    
Const adCmdStoredProc = 4 'Evaluate as a stored procedure
0赞 Shadow Wizard Is Sad And Angry 3/2/2011 #3

可以在此处找到相关的常量列表:https://web.archive.org/web/20190225142339/http://www.4guysfromrolla.com:80/ASPScripts/PrintPage.asp?REF=/webtech/faq/beginner/faq7.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

应该足以在数据库中插入/选择/更新记录。