![]() |
Obtener varios registros de Stored Procedure
Que tal foreros????? ya habia pegado un mensaje en el foro SQL al cual no recibi alguna contestación a lo que creo que no fue clara mi solicitud, la pongo ahora por aqui tratando de ser un poco mas claro, espero no romper con las reglas del Club y si es así ofresco mis disculpas, ya he borrado el mens del foro SQL. Ya he tratado de varias formas y no he obtenido los resultados esperados.
Hace un par de días trate de ayudar a un compañero aui en el club que preguntaba sobre obtener registros de un Procedimiento Almacenado, diciendole que yo habia empleado una consulta simple y me habia funcionado: Select * From Procedi_Almacenado y así fue, sólo que cometi el error de no comentar que este codigo lo ejecute en en el editor de SQL en IBExpert mientras hacia pruebas a la base de datos hecha en FB, pero despues al llegar a Delphi(6) me tope con el problema de que al querer meter el contenido de un campo de la base de datos en un ComboBox no obtengo valor alguno, usando el siguiente codigo en el IBQuery:
Me dio error indicandome que empleara Open, cambie ExecSql por Open y ya no me dio error pero tampoco me dio valores. Intente con:
y solamente me entrega un valor que es justo lo que he leido, pero también lei que para obtener varios registros se emplea una consulta, como la mencionada arriba, con lo que no estoy segura si la he implementado bien y/o si se emplea algun componente aparte. En el modulo tengo un IBDataBase, un IBTransaction, un IBStoredProc y un IBQuery. Este es el Procedimiento almacenado:
Les agradesco de antemano alguna idea o pista que me puedan proporcionar. Gracias |
Hola,
te puede asegurar que : desde delphi con un ibquery y despues ibquery.open. siendo marcas funciona perfectamente, devuelve tantas lineas como hay distintas en la tabla productos. Saludos. |
resp
Ese codigo esta perfecto tu problema debe ser otro.
Lo unico que puedo es decirte que tienes codigo redundante Aunque pienso que podrias hacer la consulta directamente ya que no veo el caso para el suo del procedimiento
|
Continúa el problema.....
Que tal???? primero que todo, gracias por su ayuda.
Iniciaré por decir que olvidé mencionar que uso pocedimientos almecenados porque la base de datos se va a emplear en red y aunque no son muchos clientes, decidi comenzar a trabajar en el servidor con ésto, de una vez por todas. Bien, pues ya habia utilizado IBQuery.OPen y seguian vastos, ya que no me agrega ningun dato a la lista, Cambie el control ComboBox por un DBLookUpComboBox pero únicamente agrego un elemento a la lista, he intentado variando codigo pero nada, cuando no me da error no agrega elementos a la lista esta es la forma en la que llamo al procedimiento almacenado desde delphi ya sea mediante un boton o al activar la form:
y en el componente IBQProdMarca tengo el siguiente codigo:
el procedimiento almacenado aun es el anotado al inicio de este hilo, vuelvo a comentar que si ejecuto el Procedimiento almacenado con: se agrega únicamente un elemento a la lista, pero si utilizo la consulta como la he indicado no agrega elemento alguno. Sera necesario eliminar el componente IBStoredProc del modulo de datos? ya no se ni lo que digo. Les agradesco de antemano su ayuda, Gracias. |
El problema no es la consulta sino como agregar los datos....
Que tal??? de nuevo aqui.
El procedimiento almacenado funciona bien al igual que la consulta, lo verifique usando un DBGrid en el cual se muestran los resultados como se esperaba, el problema es que se necesita en un ComboBox, ya que se requiere seleccionar alguna de estas opciones que se obtienen de la base de datos y tambien se debe permitir agregar nuevos datos a la base, tecleados a travez del mismo ComboBox. El codigo que utilizo para hacer la llamada y agregar los resultados de la consulta al ComboBox es el siguiente:
y da el error: El proyecto a originado una excepción clase EDataBaseError con el mensaje "IBQProdMarca:Parameter 'marca' no encontrado...... lo da en la linea donde trato de llenar el ComboBox, cambie el codigo y nada, por lo que mi duda es, ¿como hacer referencia al valor que me retorna la consulta sobre el procedimiento almacenado para rellenar el ComboBox? Gracias de antemano. |
Prueba con este código:
Saludos... |
Perfecto....
Que tal???
Muchas gracias Marcos, todo a la perfección. Reitero, gracias por tu ayuda. Buen día. |
La franja horaria es GMT +2. Ahora son las 13:11:51. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi