Page 1 of 1

how to check for error in stored procedure call

PostPosted: Fri Jul 17, 2009 10:36 pm
by markhooper
I am having some trouble with how to interpret the return code from 'databaseManager.executeStoredProcedure(...)

Specifically how to check for an error.

I am currently using Servoy v4.1.3 i6 and here is an example of what I mean...

Code: Select all
var ssid = arguments[0];
  var appuser = arguments[1];
  var server = globals.security_current_database_server;
 
  var args = new Array();
  args[0] = ssid;
  args[1] = bizlogic_get_next_sequence('k_seis_set_id_seq');
  args[2] = appuser;

  var typesArray = new Array();
  typesArray[0] = 0;
  typesArray[1] = 0;
  typesArray[2] = 0;
 
  application.output("about to call clone with: "+args[0]+" and "+args[1]+" and "+args[2]);
 
  var func_declaration = '{call seismic_util.cloneLine(?,?,?)}';
  var ds = databaseManager.executeStoredProcedure(server, func_declaration, args, typesArray, 0);

  if ( ds.getExceptionMsg() )
  {
    var lv_error = "";
    lv_error += "Error encountered in bizlogic_cloneLine()\n";
    lv_error += "Please contact KTI with the following information\n";
    lv_error += "Error: " + ds.getExceptionMsg();
    forms.graphics_template_dialog.setup_dialog('globals.graphics_fatal_error_handler','Database Error',lv_error,'Ok');
    return null;
  }


I purposely set the stored procedure to raise an error (i.e. ORA-20000) but interrogating getExceptionMsg() from ds returns nothing.
However, if I look at the value contained within ds it contains the error message.

If the stored procedure works fine the value of ds is 'BufferedDataSet'.

I'm confused how to check for an error here - can anyone offer any advice ?

Thanks in advance
Mark

Re: how to check for error in stored procedure call

PostPosted: Wed Nov 30, 2016 11:36 pm
by ernestl
Hi

Has anyone else encountered this issue?
Does anyone out there have a solution to this issue? Or would anyone know if this is a jdbc driver issue or a plugins.rawSQL.executeStoredProcedure(..) issue?

Thank you
E