• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1036
  • Last Modified:

ADO and VBScript

How do I use ADO with VBScript?
  • 4
  • 2
1 Solution
from ADOdb.com:
ADO in VBScript
Creating an ADO Project
VBScript does not support type libraries, so you do not need to reference ADO in your project. Consequently, no associated features such as command line completion are supported. Also, by default, ADO enumerated constants are not defined in VBScript.

However, ADO provides you with two include files containing the following definitions to be used with VBScript:

For server-side scripting use Adovbs.inc, which is installed in the c:\Program Files\Common Files\System\ado\ folder by default.

For client-side scripting use Adcvbs.inc, which is installed in the c:\Program Files\Common Files\System\msdac\ folder by default.
You can either copy and paste constant definitions from these files into your ASP pages, or, if you are doing server-side scripting, copy Adovbs.inc file to a folder on your Web site and referencing it from your ASP page like this:

<!--#include File="adovbs.inc"-->

Creating ADO Objects in VBScript
You cannot use the Dim statement to assign objects to a specific type in VBScript. Also, VBScript does not support the New syntax used with the Dim statement in Visual Basic for Applications. You must instead use the CreateObject function call:

Dim Rs1
Set Rs1 = Server.CreateObject( "ADODB.Recordset" )

VBScript Examples
The following code is a generic example of VBScript server-side programming in an Active Server Page (ASP) file:

<%  Option Explicit %>
<!--#include File="adovbs.inc"-->
    <BODY BGCOLOR="White" topmargin="10" leftmargin="10">

    <!-- Your ASP Code goes here -->
Dim Source
Dim Connect
Dim Rs1
Source = "SELECT * FROM Authors"
Connect = "Provider=sqloledb;Data Source=srv;" & _
    "Initial Catalog=Pubs;User Id=sa;Password=;"

Set Rs1 = Server.CreateObject( "ADODB.Recordset" )
Rs1.Open Source, Connect, adOpenForwardOnly

More specific VBScript examples are included with the ADO documentation. For more information, see ADO Code Examples in Microsoft Visual Basic Scripting Edition.

Differences Between VBScript and Visual Basic
Using ADO with VBScript is similar to using ADO with Visual Basic in many ways, including how syntax is used. However, some significant differences exist:

VBScript supports only the Variant data type, which can hold different types of data. You can store the data you need in a Variant data type, and the data will function appropriately due to casting performed by VBScript. It recognizes the type required by ADO, and converts the value in the Variant accordingly.

You cannot use on error goto <label> within VBScript.

VBScript supports some of the built-in Visual Basic functions such as Msgbox, Date, and IsNumeric. However, because VBScript is a subset of Visual Basic, not all built-in functions are supported. For example, VBScript does not support the Format function and the file I/O functions.

Here is an ADO Reference:

sample code:

'Here is a simple example

'declare variables
Dim objConn as new ADODB.Connection
Dim objRS as new ADODB.Recorset
Dim strConnectionString as String
Dim strSQL as String

'set a connection string to a database
strConnectionString = "ODBC;DSN=database"

'set a SQL query you want to use
strSQL = "Select * from sometable"

'open Connection
objConn.open strConnectionString

'open the record set
objRS.open strSQL , objConn

'disconnect the record set and close Connection
Set objRS.ActiveConnection = Nothing

'use the recordset
While NOT objRS.eof
  'do something
  for i = 0 to objRS.Fields.Count - 1
    debug.print objRS.Fields(i).name & " = " & objRS.Fields(i).value
While I was typing :(
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

rtcompAuthor Commented:
I can use ADO with ASP with no problem. But the problem that I'm running into is I need to declare a function to update adatabase with out going to another asp page.
Ah well why didn't you say that.
There are two options.

One is to include the function in the page and to call the same page with paramaters that will run the function.

Or you call another asp page that does the work but pass it an extra variable telling it what page you want it to return too.  At the end of that function redirect to the passed variable.

Unfortunately once the page is loaded on the clients machine you can't execute server side commands without calling a page on the server, this is because webpages once they are loaded are client based and can only talk to the server if they are called again or another is called.

Does this make sence?
rtcompAuthor Commented:
Thats the answer I was looking for. Thanks.
No problem :D

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now