Execute, Requery, and Clear Methods Example (VJ++)
This example demonstrates the Execute method when run from both a Command object and a Connection object. It also uses the Requery method to retrieve current data in a recordset, and the Clear method to clear the contents of the Errors collection. The ExecuteCommand and PrintOutput procedures are required for this procedure to run.
// The WFC class includes the ADO objects.
import com.ms.wfc.data.*;
public class ExecuteX
{
// Main Function
public static void main (String[] args)
{
ExecuteX();
}
// ExecuteX Function
static void ExecuteX()
{
// Define string variables.
String strSQLChange = "UPDATE Titles SET Type = "
+ "'self_help' WHERE Type = 'psychology'";
String strSQLRestore = "UPDATE Titles SET Type = "
+ "'psychology' WHERE Type = 'self_help'";
String strCnn = "Provider=sqloledb;Data Source=Server4;"
+ "Initial Catalog=Pubs;User Id=sa;Password=;";
// Define ADO objects.
Connection cnConn1 = null;
Command cmdChange = null;
Recordset rsTitles = null;
try
{
// Open connection.
cnConn1 = new Connection ();
cnConn1.open(strCnn, "", "", AdoEnums.CommandType.UNSPECIFIED);
// Create command object.
cmdChange = new Command();
cmdChange.setActiveConnection (cnConn1);
cmdChange.setCommandText (strSQLChange);
// Open recordset with Titles table.
rsTitles = new Recordset();
rsTitles.open("Titles", cnConn1,
AdoEnums.CursorType.STATIC,
AdoEnums.LockType.OPTIMISTIC,
AdoEnums.CommandType.TABLE);
// Print report of original data.
System.out.println("\n\n\tData in Titles table "
+ "before executing the query: \n");
PrintOutput(rsTitles);
// Clear extraneous errors from the Errors collection.
cnConn1.getErrors().clear();
// Call the ExecuteCommand subroutine to
// execute cmdChange command.
ExecuteCommand(cmdChange, rsTitles);
// Print report of new data.
System.out.println("\n\n\tData in Titles table after "
+ "executing the query: \n");
PrintOutput(rsTitles);
// Use the Connection object's execute method to
// execute SQL statement to restore data.
cnConn1.execute(strSQLRestore);
// Print report of restored data.
System.out.println("\n\n\tData after executing the query "
+ "to restore the original information: \n");
PrintOutput(rsTitles);
// Clean up objects before exit.
rsTitles.close();
cnConn1.close();
} // End Try statement.
catch( AdoException ae )
{
// Notify user of any errors that result from ADO.
// As passing a Recordset, check for null pointer first.
if (rsTitles != null)
{
PrintProviderError(rsTitles.getActiveConnection());
}
else
{
System.out.println("Exception: " + ae.getMessage());
}
}
}
// ExecuteCommand Function
static void ExecuteCommand(Command cmdTemp, Recordset rstTemp)
{
try
{
// CommandText property already set before function was called.
cmdTemp.setCommandType(AdoEnums.CommandType.TEXT);
cmdTemp.execute();
// Retrieve the current data by requerying the recordset.
rstTemp.requery(AdoEnums.CommandType.UNKNOWN);
}
catch( AdoException ae )
{
// Notify user of any errors that result from ADO.
PrintProviderError(rstTemp.getActiveConnection());
}
}
// PrintOutput Function
static void PrintOutput(Recordset rstTemp)
{
// Ensure at top of recordset.
rstTemp.moveFirst();
// If EOF is true, then no data and skip print loop.
if( rstTemp.getEOF() )
{
System.out.println("\tRecordset empty\n");
}
else
{
// Enumerate Recordset and print data from each.
while( !(rstTemp.getEOF()) )
{
// Convert variant string to convertable string type.
System.out.println("\t"
+ rstTemp.getFields().getItem("Title").getValue() + " "
+ rstTemp.getFields().getItem("Type").getValue() + "\n");
rstTemp.moveNext();
}
}
}
// PrintProviderError Function
static void PrintProviderError( Connection Cnn1 )
{
// Print Provider errors from Connection object.
// ErrItem is an item object in the Connection’s Errors collection.
com.ms.wfc.data.Error ErrItem = null;
long nCount = 0;
int i = 0;
nCount = Cnn1.getErrors().getCount();
// If there are any errors in the collection, print them.
if( nCount > 0);
{
// Collection ranges from 0 to nCount - 1
for (i = 0; i< nCount; i++)
{
ErrItem = Cnn1.getErrors().getItem(i);
System.out.println("\t Error number: " + ErrItem.getNumber()
+ "\t" + ErrItem.getDescription() );
}
}
}
// PrintIOError Function
static void PrintIOError( java.io.IOException je)
{
System.out.println("Error \n");
System.out.println("\tSource = " + je.getClass() + "\n");
System.out.println("\tDescription = " + je.getMessage() + "\n");
}
}