Ver Mensaje Individual
  #1  
Antiguo 08-06-2012
d3nz1g d3nz1g is offline
Miembro
NULL
 
Registrado: jun 2012
Posts: 10
Reputación: 0
d3nz1g Va por buen camino
Question Obtener valor númerico de procedimiento almacenado

Un saludo a tod@s,

Tengo una duda que quizás me puedan ayudar a despejar, sin mas preámbulos vamos al problema:

Estoy trabajando en una aplicación conectada a una BD SQL (Server o cualquier otra). Para realizar las consultas sobre la BD utilizo dos métodos (mediante DBExpress):

1. obtenerConsulta : me devuelve un ClientDataSet con los resultados consultados.

2. ejecutarConsulta: ejecuta una sentencia SQL dada y me devuelve un valor entero.

Este ultimo metodo (ejecutarConsulta) en realidad lo que hace es declarar un TSQLQuery y ejecutar un ExecSql, que como supongo muchos saben devuelve el número de filas afectadas por la consulta.

Cita:
...
SQL.Clear;
SQL.Add(query);
Result := ExecSQL(true);
Aqui es donde surge el problema: resulta que mediante el ExecSQL estoy ejecutando un procedimiento almacenado que inserta un registro en una tabla dadas ciertas condiciones, pero ademas de esto me devuelve un valor numerico significando si realizo la insercion (1), o si no la inserto porque el registro ya exisitía (2) o no cumplía una condición dada (3).

Así, mi pregunta es la siguiente: ¿Existirá alguna manera de ejecutar un procedimiento almacenado que realize modificaciones a la BD y que me devuelva un valor numerico que no sea el numero de filas afectadas?

Ya intente ejecutando el procedimiento almacenado mediante el comando Open; en este caso si puedo obtener el valor númerico pero se cae en el caso de tener tener que realizar la insercion (caso 1)...

Alguna idea? Gracias y saludos.
Responder Con Cita