Skip Headers

Oracle® Objects for OLE C++ Class Library Developer's Guide

Part Number B10954-01
Go To Table Of Contents

ExecuteSQL Method

Applies To



This method sends a SQL statement to the Oracle database to be executed.


oresult ExecuteSQL(const char *sqlstmt) const


The SQL statement to execute.

This method executes an arbitrary SQL statement specified in the sqlstmt argument. The sqlstmt should not be a query, but can use select clauses in some other kind of statement. If the SQL statement modifies the data accessed by an open dynaset, the dynaset is not guaranteed to see the change until it is Refreshed.

Note: Some kinds of SQL statements result in an implicit commit. Consult your Oracle documentation.

You can also use the ExecuteSQL method to call stored PL/SQL procedures and functions. Any parameters to the procedure or function should be provided with parameter objects.

Return Value

An oresult indicating whether the operation succeeded (OSUCCESS) or not (OFAILURE).


Several examples follow. They all assume the existence of an open ODatabase named odb.

This example executes a very simple statement. It drops a table.

odb.ExecuteSQL("drop table dontwantit");

This example gives everybody in Department 20 a 10% raise in their salary by using a SQL statement that updates multiple records. Note that you can obtain the number of rows actually processed with the GetRowsProcessed attribute.

odb.ExecuteSQL("update emp set sal = sal * 1.1 where deptno = 20");

long numrows = odb.GetRowsProcessed();

This example calls a stored procedure.

// Create a database object

ODatabase odb("ExampleDB", "scott", "tiger");

// Add EMPNO as an Input parameter and set it's initial value

odb.GetParameters().Add("EMPNO", 7369,


// Add ENAME as an Output parameter and set it's initial value

odb.GetParameters().Add("ENAME", 0,



Execute the Stored Procedure Employee.GetEmpName to retrieve ENAME. This Stored Procedure can be found in the file ORAEXAMP.SQL


odb.ExecuteSQL("Begin Employee.GetEmpName (:EMPNO, :ENAME); end;")

Copyright © 1998, 2003 Oracle Corporation.

All Rights Reserved.
Go To Table Of Contents