llamar a un Store Procedure
Hola amigos..
quiero ejecutar un Store Procedure desde mi Formulario, para que me permite almancenar unos datos... bueno.. tengo declarado el IBStoreProc y su respectiva transaccion... la forma de ejecutarlo (que estoy usando) es esta.. pero no me resulta... alguien sabe como deberia ser...
la idea de esto.. es que hay un StringGrid con varios datos.. y tengo que almacenar cada uno de ellos.. por eso lo estoy ejecutando así.. existe otra forma ??? antes lo habia echo a traves de codigo normal y me funcionaba (pero no utilizaba procedimientos Almacenados).. pero me tinca que la forma de llamar el StoreProcedure esta mala |
Checa Esto....
Cita:
No te guarda los datos ???? En el caso de un StringGrid, es la forma màs correcta que he visto para almacenar datos si no usaràs algun ibDataset conectado a un dbGRID, no le veo algun problema, a no ser que alguien este en contra de mi opinion. Saludos.... |
Lo primero de todo es ver qué tipo de SP es, si es de actualización o de selección (pon el código del SP).
En base a una u otra elección, hay que ejecutarlo de forma distinta. Por regla general, si lleva la palabra Suspend dentro del SP, entonces es un SP de selección y por ende, hay que usarlo como una tabla más:
Si es de actualización / ejecución, debes llamarlo tal y como lo estas haciendo. Saludos |
En principio debe funcionar. Aunque no sé el tema de transacciones, ya que solo veo el Commit pero no el inicio de transacción. Saludos |
mi store procedure es la siguiente
hasta el momento me da un error de 'List index out of bound (0)',, y no es un numero decimal válido..
esta es la SP que fue creada en IBExpert y cuando la ejecuta desde allí no tiene problemas.... (eso por que me muestra un formulario donde ingreso las variables... ).. quizas el error sea el de traspasar los datos en el formulario... :confused:
|
Cita:
este mismo codigo lo he ejecutado sin Store Procedure y utilizando componente IBQuery... y me funciona bien.. y la forma de almacenar es la sigueinte:
|
Ese es un SP de Ejecución, es decir, elimina el "suspend", ya que cuando llega a esa linea, no tiene que devolver ningun registro.
Para el "no es un decimal válido", ¿le estas pasando al menos un decimal con el separador de decimales en un punto?. Si no lleva el punto porque la cantidad en cuestión no tiene decimales , puede venir el problema por ahi. Por otra parte, para que más tarde no dé un error inexplicable, revisa este hilo sobre los Floats en Firebird. Saludos |
La franja horaria es GMT +2. Ahora son las 14:58:21. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi