Link to home
Start Free TrialLog in
Avatar of rtcomp
rtcomp

asked on

ADO and VBScript

How do I use ADO with VBScript?
Avatar of cheekycj
cheekycj
Flag of United States of America image

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:

<%  @LANGUAGE="VBSCRIPT" %>
<%  Option Explicit %>
<!--#include File="adovbs.inc"-->
<HTML>
    <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
Response.Write("Success!")
%>
    </BODY>
</HTML>

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:
http://www.devguru.com/Technologies/ado/quickref/ado_intro.html

sample code:
http://www.planet-source-code.com/xq/ASP/txtCodeId.12050/lngWId.1/qx/vb/scripts/ShowCode.htm

tutorial:
http://www.sqlmag.com/Articles/Index.cfm?ArticleID=5909
Avatar of Gibble
Gibble

'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
ObjConn.Close

'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
  next
Wend
While I was typing :(
Avatar of rtcomp

ASKER

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.
ASKER CERTIFIED SOLUTION
Avatar of Gibble
Gibble

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of rtcomp

ASKER

Thats the answer I was looking for. Thanks.
No problem :D