Connecting to an Oracle Server Database (through ADO)

Applies to TestComplete 15.79, last modified on November 18, 2025

TestComplete supports database access through ActiveX Data Objects (ADO). This approach allows your scripts to execute SQL queries or stored procedures directly from Oracle databases.

Note:

You can create ADO objects (such as connections, recordsets, and commands) through OLE and then call their methods in scripts. For more information, see Working With Databases.

The following code illustrates access to a Stored Procedure in Oracle using ADO objects:

JavaScript, JScript

// Define the function
function CallOracleStoredProcedure() {
  // Declare constants
  var adCmdStoredProc = 4;
  var adParamInput = 1;
  var adParamOutput = 2;
  var adVarChar = 200;
  var adNumeric = 131;

  // Create and configure connection
  var conn = new ActiveXObject("ADODB.Connection");
  conn.ConnectionString = "DSN=server;UID=user;PWD=password;";
  conn.ConnectionTimeout = 30;
  conn.Open();
  conn.CommandTimeout = 1200;

  // Create and configure command
  var cmd = new ActiveXObject("ADODB.Command");
  cmd.ActiveConnection = conn;
  cmd.CommandType = adCmdStoredProc;
  cmd.CommandText = "APPS.MYSCHEMA.SOME_PACKAGE.STORED_PROC_NAME";
  cmd.CommandTimeout = 1200;

  cmd.Parameters.Append(cmd.CreateParameter("order_type", adVarChar, adParamInput, 3, "ANY"));
  cmd.Parameters.Append(cmd.CreateParameter("order_is_active", adVarChar, adParamInput, 1, "Y"));
  var param = cmd.CreateParameter("order_number", adNumeric, adParamOutput);
  param.Precision = 18;
  param.NumericScale = 0;
  cmd.Parameters.Append(param);
  cmd.Parameters.Append(cmd.CreateParameter("order_name", adVarChar, adParamOutput, 50));

  // Execute
  cmd.Execute();

  // Output
  Log.Message("Output Order Number: " + cmd.Parameters("order_number").Value);
  Log.Message("Output VIN: " + cmd.Parameters("order_name").Value);

  conn.Close();
}

Python

# Define the function
def CallOracleStoredProcedure():
  import win32com.client

  # Declare constants
  adCmdStoredProc = 4
  adParamInput = 1
  adParamOutput = 2
  adVarChar = 200
  adNumeric = 131

  # Create and configure connection
  conn = win32com.client.Dispatch("ADODB.Connection")
  conn.ConnectionString = "DSN=server;UID=user;PWD=password;"
  conn.ConnectionTimeout = 30
  conn.Open()
  conn.CommandTimeout = 1200

  # Create and configure command
  cmd = win32com.client.Dispatch("ADODB.Command")
  cmd.ActiveConnection = conn
  cmd.CommandType = adCmdStoredProc
  cmd.CommandText = "APPS.MYSCHEMA.SOME_PACKAGE.STORED_PROC_NAME"
  cmd.CommandTimeout = 1200

  cmd.Parameters.Append(cmd.CreateParameter("order_type", adVarChar, adParamInput, 3, "ANY"))
  cmd.Parameters.Append(cmd.CreateParameter("order_is_active", adVarChar, adParamInput, 1, "Y"))
  param = cmd.CreateParameter("order_number", adNumeric, adParamOutput)
  param.Precision = 18
  param.NumericScale = 0
  cmd.Parameters.Append(param)
  cmd.Parameters.Append(cmd.CreateParameter("order_name", adVarChar, adParamOutput, 50))

  # Execute
  cmd.Execute()

  # Output
  Log.Message("Output Order Number: " + str(cmd.Parameters("order_number").Value))
  Log.Message("Output VIN: " + str(cmd.Parameters("order_name").Value))

  conn.Close()

VBScript

' Declare constants for ADO
Sub CallOracleStoredProcedure()

  Const adCmdStoredProc = 4
  Const adParamInput = 1
  Const adParamOutput = 2
  Const adVarChar = 200
  Const adNumeric = 131

  ' Create and configure connection
  Dim conn, cmd, param
  Set conn = CreateObject("ADODB.Connection")
  conn.ConnectionString = "DSN=server;UID=user;PWD=password;"
  conn.ConnectionTimeout = 30
  conn.Open
  conn.CommandTimeout = 1200

  ' Create and configure command
  Set cmd = CreateObject("ADODB.Command")
  cmd.ActiveConnection = conn
  cmd.CommandType = adCmdStoredProc
  cmd.CommandText = "APPS.MYSCHEMA.SOME_PACKAGE.STORED_PROC_NAME"
  cmd.CommandTimeout = 1200

  Set param = cmd.CreateParameter("order_type", adVarChar, adParamInput, 3, "ANY")
  cmd.Parameters.Append param

  Set param = cmd.CreateParameter("order_is_active", adVarChar, adParamInput, 1, "Y")
  cmd.Parameters.Append param

  Set param = cmd.CreateParameter("order_number", adNumeric, adParamOutput)
  param.Precision = 18
  param.NumericScale = 0
  cmd.Parameters.Append param

  Set param = cmd.CreateParameter("order_name", adVarChar, adParamOutput, 50)
  cmd.Parameters.Append param

  ' Execute the stored procedure
  cmd.Execute

  ' Output the returned values
  Log.Message "Output Order Number: " & cmd.Parameters("order_number").Value
  Log.Message "Output VIN: " & cmd.Parameters("order_name").Value

  ' Clean up
  conn.Close
  Set cmd = Nothing
  Set conn = Nothing

End Sub

DelphiScript

// Define the procedure
procedure CallOracleStoredProcedure();
const
  adCmdStoredProc = 4;
  adParamInput = 1;
  adParamOutput = 2;
  adVarChar = 200;
  adNumeric = 131;
var
  conn, cmd, param: OleVariant;
begin

  // Create and configure connection
  conn := CreateOleObject('ADODB.Connection');
  conn.ConnectionString := 'DSN=server;UID=user;PWD=password;';
  conn.ConnectionTimeout := 30;
  conn.Open;
  conn.CommandTimeout := 1200;

  // Create and configure command
  cmd := CreateOleObject('ADODB.Command');
  cmd.ActiveConnection := conn;
  cmd.CommandType := adCmdStoredProc;
  cmd.CommandText := 'APPS.MYSCHEMA.SOME_PACKAGE.STORED_PROC_NAME';
  cmd.CommandTimeout := 1200;

  cmd.Parameters.Append(cmd.CreateParameter('order_type', adVarChar, adParamInput, 3, 'ANY'));
  cmd.Parameters.Append(cmd.CreateParameter('order_is_active', adVarChar, adParamInput, 1, 'Y'));
  param := cmd.CreateParameter('order_number', adNumeric, adParamOutput);
  param.Precision := 18;
  param.NumericScale := 0;
  cmd.Parameters.Append(param);
  cmd.Parameters.Append(cmd.CreateParameter('order_name', adVarChar, adParamOutput, 50));

  // Execute
  cmd.Execute;

  // Output
  Log.Message('Output Order Number: ' + VarToStr(cmd.Parameters['order_number'].Value));
  Log.Message('Output VIN: ' + VarToStr(cmd.Parameters['order_name'].Value));

  // Clean up
  conn.Close;
end;

C++Script, C#Script

// Define the function
function CallOracleStoredProcedure() {

  // Declare constants
  var adCmdStoredProc = 4;
  var adParamInput = 1;
  var adParamOutput = 2;
  var adVarChar = 200;
  var adNumeric = 131;

  // Create and configure connection
  var conn = new ActiveXObject("ADODB.Connection");
  conn.ConnectionString = "DSN=server;UID=user;PWD=password;";
  conn.ConnectionTimeout = 30;
  conn.Open();
  conn.CommandTimeout = 1200;

  // Create and configure command
  var cmd = new ActiveXObject("ADODB.Command");
  cmd.ActiveConnection = conn;
  cmd.CommandType = adCmdStoredProc;
  cmd.CommandText = "APPS.MYSCHEMA.SOME_PACKAGE.STORED_PROC_NAME";
  cmd.CommandTimeout = 1200;

  cmd.Parameters.Append(cmd.CreateParameter("order_type", adVarChar, adParamInput, 3, "ANY"));
  cmd.Parameters.Append(cmd.CreateParameter("order_is_active", adVarChar, adParamInput, 1, "Y"));
  var param = cmd.CreateParameter("order_number", adNumeric, adParamOutput);
  param.Precision = 18;
  param.NumericScale = 0;
  cmd.Parameters.Append(param);
  cmd.Parameters.Append(cmd.CreateParameter("order_name", adVarChar, adParamOutput, 50));

  // Execute
  cmd.Execute();

  // Output
  Log.Message("Output Order Number: " + cmd.Parameters("order_number").Value);
  Log.Message("Output VIN: " + cmd.Parameters("order_name").Value);

  // Clean up
  conn.Close();
}

Highlight search results