This example demonstrates the Update method in conjunction with the CancelUpdate method.
// BeginUpdateJ import java.io.*; import com.ms.wfc.data.*; public class UpdateX { // The main entry point of the application. public static void main (String[] args) { UpdateX(); UpdateX2(); System.exit(0); } // UpdateX Function static void UpdateX() { // Define ADO objects. Recordset rstEmployees = null; // Declarations. String strCnn = "Provider='sqloledb';Data Source='MySqlServer';"+ "Initial Catalog='Pubs';Integrated Security='SSPI';"; String strOldFirst; String strOldLast; String strMessage; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try { // Open Recordset with names from Employees table. rstEmployees = new Recordset(); rstEmployees.setCursorType(AdoEnums.CursorType.KEYSET); rstEmployees.setLockType(AdoEnums.LockType.OPTIMISTIC); rstEmployees.open("SELECT fname,lname FROM Employees " + "ORDER BY lname", strCnn, AdoEnums.CursorType.KEYSET, AdoEnums.LockType.OPTIMISTIC, AdoEnums.CommandType.TEXT); // Store Original data. strOldFirst = rstEmployees.getField("fname").getString(); strOldLast = rstEmployees.getField("lname").getString(); // Change data in edit buffer. rstEmployees.getField("fname").setString("Linda"); rstEmployees.getField("lname").setString("Kobara"); // Show contents of buffer and get user input. strMessage = "Edit in Progress :\n" + "\tOriginal Data = " + strOldFirst + " " + strOldLast + "\n\tData in Buffer = " + rstEmployees.getField("fname").getString() + " " + rstEmployees.getField("lname").getString() + "\n\n" + "Use Update to replace the original data with " + "the buffered data in the Recordset?Enter (Y/N)"; System.out.println(strMessage); if(in.readLine().trim().equalsIgnoreCase("Y")) rstEmployees.update(); else rstEmployees.cancelUpdate(); // Show the resulting data. System.out.println("Data in Recordset = " + rstEmployees.getField("fname").getString() + " " + rstEmployees.getField("lname").getString()+ "\n"); // Restore original data because this is a demonstration. if(!(strOldFirst.equals( rstEmployees.getField("fname").getString()) && strOldLast.equals( rstEmployees.getField("lname").getString()))) { rstEmployees.getField("fname").setString(strOldFirst); rstEmployees.getField("lname").setString(strOldLast); rstEmployees.update(); } // Cleanup Objects before exit. rstEmployees.close(); System.out.println("Press <Enter> to continue.."); in.readLine(); } catch(AdoException ae) { // Notify the user of any errors that result from ADO. // As passing a recordset, check for null pointer first. if(rstEmployees != null) { PrintProviderError(rstEmployees.getActiveConnection()); } else { System.out.println("Exception: "+ ae.getMessage()); } } // System read requires this catch. catch(java.io.IOException je) { PrintIOError(je); } finally { // Cleanup objects before exit. if (rstEmployees != null) if (rstEmployees.getState() == 1) rstEmployees.close(); } } // UpdateX2 Function static void UpdateX2() { // This example demonstrates the Update method in conjunction // with the AddNew method. // Define ADO Objects. Connection cnn1 = null; Recordset rstEmployees = null; // Declarations. String strCnn = "Provider='sqloledb';Data Source='MySqlServer';"+ "Initial Catalog='Pubs';Integrated Security='SSPI';"; String strEmpID; String strOldFirst; String strOldLast; String strMessage; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try { // Open a connection. cnn1 = new Connection(); cnn1.open(strCnn); // Open Recordset with data from Employees table. rstEmployees = new Recordset(); rstEmployees.setCursorType(AdoEnums.CursorType.KEYSET); rstEmployees.setLockType(AdoEnums.LockType.OPTIMISTIC); rstEmployees.open("employee", cnn1, AdoEnums.CursorType.KEYSET, AdoEnums.LockType.OPTIMISTIC, AdoEnums.CommandType.TABLE); rstEmployees.addNew(); strEmpID="B-S55555M"; rstEmployees.getField("emp_id").setString(strEmpID); rstEmployees.getField("fname").setString("Bill"); rstEmployees.getField("lname").setString("Sornsin"); // Show contents of buffer and get user input. strMessage = "AddNew in progress : " + "\n" + "\tData in Buffer = " + rstEmployees.getField("emp_id").getString() + " " + rstEmployees.getField("fname").getString() + " " + rstEmployees.getField("lname").getString()+ "\n\n" + "Use Update to save buffer to recordset?Enter (Y/N)"; System.out.println(strMessage); if(in.readLine().trim().equalsIgnoreCase("Y")) { rstEmployees.update(); // Go to the new record and show the resulting data. System.out.println("Data in recordset = " + rstEmployees.getField("emp_id").getString()+ " " + rstEmployees.getField("fname").getString() + " " + rstEmployees.getField("lname").getString() + "\n"); } else { rstEmployees.cancelUpdate(); System.out.println("No new Record added.\n"); } // Delete new data because this is a demonstration. cnn1.execute( "DELETE FROM employee WHERE emp_id='" + strEmpID +"'"); // Cleanup Objects before exit rstEmployees.close(); System.out.println("Press <Enter> to continue.."); in.readLine(); } catch(AdoException ae) { // Notify the user of any errors that result from ADO. // As passing a recordset, check for null pointer first. if(rstEmployees != null) { PrintProviderError(rstEmployees.getActiveConnection()); } else { System.out.println("Exception: "+ ae.getMessage()); } } // System read requires this catch. catch(java.io.IOException je) { PrintIOError(je); } finally { // Cleanup objects before exit. if (rstEmployees != null) if (rstEmployees.getState() == 1) rstEmployees.close(); } } // PrintProviderError Function static void PrintProviderError(Connection cnn1) { // Print Provider Errors from Connection Object. // ErrItem is an item object in the Connections 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("\t Source: " + je.getClass() + "\n"); System.out.println("\t Description: "+ je.getMessage() + "\n"); } } // EndUpdateJ
CancelUpdate Method | Update Method