FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Ejecutar objeto Tquery
Buenas a tod@s,
Tengo el siguiente problemilla: En el modulo1, construyo a través de una variable string el nombre del objeto TQuery que quiero ejecutar. Una vez construida, lo único que tengo que hacer es: Código:
TQuery(FindComponent(s_query)).Open Creía que lo único que tenía que hacer era añadir al nombre del objeto Tquery que había obtenido anteriormente el prefijo Datamodule, es decir: Código:
s_query := "DataModule1."+Trim(s_query); TQuery(FindComponent(s_query)).Open Cita:
Alguien sabe que estoy haciendo mal??? |
#2
|
||||
|
||||
mira estaria bueno que dijeras en que linea te da el error. y el codigo de error
porque en mi experienciaa si es 000000 es que algo no esta creado, Fijate de andarlo depuradon paso a paso y por ahi capaz que puedas descular que es. |
#3
|
||||
|
||||
Vamos por partes, FindComponet es un método del objeto TComponent y lo que hace es buscar un componente que pertenece al primero, es decir, si tu estas usando FindComponent dentro de un formulario solo encontrara componentes que pertenecen a ese formulario, no componentes que estén en otro formulario ni en un Datamodule. Por lo que lo mas probable es que cuando tu haces:
la función FindComponent este devolviendo nil, como no lo compruebas y haces directamente un TypeCast e intentas acceder a un método de un objeto que no existe, es ahí donde te da el error. Prueba a hacer algo como esto:
Última edición por seoane fecha: 17-10-2006 a las 20:18:40. |
#4
|
||||
|
||||
Púes he puesto en práctica lo que me ha aconsejado Seoane y he resuelto el problema que tenía.
Muchas gracias por todo |
#5
|
||||
|
||||
¿Pues no resultaría más comodo devolver un TQuery?
Ya en el datamodule:
Tal y como veo la cosa, quizás fuera bueno añadir todas las querys creadas a un TStringList, así los tendrías agrupados, facilitando la destrucción o el acceso a los mismos. Edito: El problema que veo, es que un datamodule tendrá muchisimas tablas, querys, campos persistentes etc, realizar un bucle con FindComponent por todos ellos hasta encontrar el query deseado puede ser excesivo, con el TStringList, sería como acceder con un IndexOf a un StringList. En el Stringlist, almacenas el nombre del Query (parámetro Name), despues a su objeto asociado, le añades el Query Creado. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 18-10-2006 a las 15:15:04. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
TQuery | nenufer | Conexión con bases de datos | 2 | 22-05-2006 16:41:03 |
Objeto Ole | omy | Varios | 0 | 03-02-2006 21:40:32 |
Problemas con Tquery | Coco_jac | Varios | 4 | 26-12-2005 18:43:33 |
ejecutar sp_helpindex con un TQuery | Javi2 | SQL | 0 | 03-03-2005 11:24:00 |
objeto ole | omy | Varios | 6 | 05-11-2003 18:15:54 |
|