FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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:
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. |
#2
|
||||
|
||||
¿Y qué base de datos es?
En principio, un procedimiento almacenado puede devolver lo que tú quieras, así que no habría problema. |
#3
|
|||
|
|||
Actualmente estoy trabajando en SQL Server.
El procedimiento almancenado como tal si esta devolviendo el valor esperado, el problema es como obtener ese valor desde Delphi, ya que el ExecSQL no retorna el valor que devuelve el procedimiento almacenado sino la cantidad de filas afectadas... Me doy a entender? Gracias por la respuesta. |
#4
|
||||
|
||||
Supongo que el sql server que usas es el de microsoft.
Y creo que preguntas por un procedimiento almacenado llamado desde delphi. Para obtener el valor devuelto, algo así, es sólo un ejemplo:
|
#5
|
|||
|
|||
Gracias Casimiro, lamento haber durado tanto en responder pero estuve realizando bastantes pruebas al respecto... Comento mis resultados:
Intente por todos los medios de realizar la consulta como sugeriste pero no logre echarla a andar.... El execsql no me permite obtener el valor devuelto, esto solo lo pude conseguir mediante el comando open, pero este no me permite realizar la inserción que necesito efectuar mediante el procedimiento almacenado. Así que después de mucho batallar con el problema decidí que talvez habia una manera mas simple de abordar el problema, y la encontre utilizando el componente ClientDataSet. La idea de utilizar procedimientos almacenados era para optimizar al máximo la velocidad de las consultas pues estaba editando la base de datos directamente, al lograr trabajar mediante el CDS se me solucionaron un montón de problemas asi como también logre optimizar enormemente el tiempo de respuesta de mi aplicación! Ahora tengo una nueva duda, pero ya no pertenece a este hilo, así que Casimiro muchas gracias por tu tiempo y atención. |
#6
|
||||
|
||||
Bueno, voy a ver el otro hilo, a ver si conozco la respuesta
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Rescatar valor desde Procedimiento Almacenado en Delphi 7 | Confucio | SQL | 3 | 11-03-2009 01:32:53 |
Obtener Fecha y Hora en un Procedimiento Almacenado | Efren2006 | SQL | 2 | 17-01-2009 15:04:38 |
obtener valor numerico de una excepcion | Enan0 | Varios | 1 | 06-08-2005 00:54:35 |
Mostrar valor de DBEDIT con Procedimiento Almacenado | JoanKa | Firebird e Interbase | 3 | 05-06-2005 11:10:35 |
Procedimiento almacenado para obtener Rubros y subrubros | oliverinf | Firebird e Interbase | 7 | 27-08-2004 01:25:42 |
|