FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Query en procedimiento
Hola amigos, mi problema es que utilizo los query (adoquery) en procedimientos para luego invocarlos. Como esas rutinas van en una unidad no incorporo los componentes (adoquery) a los formularios, entonces lo que quiero hacer es utilizar los query como variables locales y devolver el resultado en alguna otra. Me están dando dolores de cabeza, al compilar hay errores en memoria.
Lo que hago es más o menos lo siguiente var query1,query2:TADOquery; las declaro luego las creo con query1.TADOQuery.Create(query1) y hago la consulta. Seguro que me falta algo, además quisiera liberar la var al finalizar (query1.free), pero también me dió problemas. Saludos, espero respuestas. |
#2
|
||||
|
||||
¿Por qué no pones exactamente cómo es que creas el componente. Esta sentencia que pones es imposible.
// Saludos |
#3
|
|||
|
|||
Cita:
Después enlazas esa unidad, la del DataModule, a los Forms en los que quieres consultar/editar/agregar/borrar datos. Finalmente para acceder a los datos de la BD limpias la consulta previa, añades una consulta, preparas la consulta y la abres, entre otros detalles... Si no lo haces así, te estás liando demasiado. Además un único TQuery vale para realizar muchísimas consultas las cuales no todas tienen que estar abiertas al mismo tiempo. No sé, yo me replantearía eso de crear componentes de acceso a datos en tiempo de ejecución en vez de en tiempo de diseño. |
#4
|
||||
|
||||
Antes lo hacia en un DataModule, al poco tiempo me faltaba pantalla para poner los componentes de base de datos, al final opte por crear los componentes en tiempo real y no me arrepiento de haberlo hecho.
Este proceso lo realizo en cada formulario y nos es más trabajo, sino otra forma de trabajar, para mi, es ideal. Primero, Definir en TForm:
Segundo, Cuando se crea el TForm:
Tercero, Cuando se busca
Cuarto, Cuando se cierre el formulario
Y esto me va muy bien. Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. |
#5
|
|||
|
|||
Cita:
query1:=TADOQuery.Create(query1); asi la creo en tiempo de ejecución y luego hago la consulta. Evidentemente no se crea adecuadamente porque me dá error en memoria al invocar el procedimiento. A los demás gracias por sus recomendaciones, pero trabajo incorporando procedimientos en una Unit auxiliar, de esa forma solo debo invocarlos en lugar de repetir codigo. |
#6
|
||||
|
||||
Esto es incorrecto. No puedes pasar como parámetro al Create al propio componente. Si tú mismo(a?) vas a destruir posteriormente el componente, pasa nil como parámetro.
// Saludos |
#7
|
|||
|
|||
Oka, podrías decirme por favor como es la sentencia?
|
#10
|
||||
|
||||
Si, necesitas TU MISMO liberarlo.
Cuando tu defines en el parámetro que el dueño sea nil le estás indicando que tu eres quien se encargará de liberarlo y no la aplicación. Te recomiendo la lectura de la ayuda, allí está aclarado el asunto. Saludos, |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Procedimiento almacenado y query | XBart | Firebird e Interbase | 1 | 16-01-2006 09:29:33 |
Ayuda con procedimiento almacenado y query | XBart | Firebird e Interbase | 3 | 05-12-2005 03:42:55 |
Ayuda, como llamar a un procedimiento desde otro procedimiento? | Ariatna | Varios | 1 | 01-02-2005 04:05:35 |
Llamar a Procedimiento Firebird des Query | Gabriel | Conexión con bases de datos | 3 | 09-06-2004 20:21:05 |
Como Ejecutar Un Query Desde Un Procedimiento Almacenado | multisof | Firebird e Interbase | 2 | 04-11-2003 06:15:28 |
|