![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Hola coso, gracias por tu atención.
He probado la sentencia 'if not Asign' y me lanza la excepción 'Read of Address', parece que hay problemas de acceso al ibQuery, aunque desconozco por qué. He probado a llamar a un método público del DataModule y no da error de acceso. Este DataModule dónde se encuentra la query tiene definido otro DataModule en la directiva 'interface', el cual contiene la conexión a la base de datos y un TIBTransaction al que se conectan las queries (aunque no creo que esto sea problema). Otra cosa, el ibQuery tiene definida una sentencia SQL, pero luego a parte tiene definido un campo, el cual es uno de los campos obtenidos en la sentencia, para alimentar posteriormente la lista. Aunque no sé si esto es correcto o la mejor manera, ya que no tengo mucha experiencia programando este tipo de aplicaciones. He seguido probando cosas, pero no sé que puede estar pasando. ¿Alguna idea? |
|
#2
|
|||
|
|||
|
Hola, yo simplificaria todo a un unico datamodule (para eso esta este tipo de form, para no tener desperdigados todos los componentes de base de datos). Es probable que haya algun lio por alli (forms con el mismo nombre y diferentes componentes, por ejemplo, cosas asi) Por otra banda, si te da un error de read address, lo mas probable es que no este asignado o bien datamodule (que no este creado en tiempo de ejecucion) o bien que hayas liberado el ibQuery. Prueba if not assigned(Datamodule) then ShowMessage(''). Creo que debe ser eso, que no tienes creada la form Datamodule al llegar a este punto. Saludos.
|
|
#3
|
|||
|
|||
|
Hola de nuevo, he probado lo que me dices y nada.
Parece que todo está bien asignado, además todos los objetos (datasource, query) accedo sin problemas en tiempo de ejecución. El error ocurre al llamar a esa sentencia 'Assign', así que seguiré investigando. Gracias. |
|
#4
|
|||
|
|||
|
Hola, no es assign() es assigned(). La primera copia dos objetos. La segunda comprueba que el argumento pasado como puntero no sea null. Saludos.
|
|
#5
|
|||
|
|||
|
Hola, me refería a la linea:
form1.TJvDBLookupList.Field.Assign(prueba); Que es donde salta la excepción... |
|
#6
|
|||
|
|||
|
¿Son de los mismos tipos?¿o Fields es TFieldList? Si se puede acceder a Field de manera array (Field[0]) entonces son distintos tipos. De todas maneras, prueba con una asignacion directa (form1.TJvDBLookupList.Field = prueba) y comprueba antes si prueba no es null (if prueba = nil then showmessage(''))
|
|
#7
|
|||
|
|||
|
Son TField.
La sentencia form1.TJvDBLookupList.Field = prueba; no puede ejecutarse porque '.Field' es de sólo lectura... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Asignar datos origen a gráfico en tiempo de ejecución | g_rojo | Gráficos | 4 | 07-12-2007 01:44:19 |
| Asignar evento OnDrawColumnCell en tiempo de ejecución | gluglu | OOP | 6 | 01-06-2007 13:14:58 |
| Asignar propiedades de Ttable en tiempo de ejecución | coleleon | Tablas planas | 3 | 30-11-2005 23:22:39 |
| Asignar evento Oncalcfield en tiempo de ejecucion | el_barto | Conexión con bases de datos | 5 | 06-09-2005 00:08:46 |
| Asignar la ruta de tablas en tiempo de ejecucion | tortelini | Varios | 2 | 19-03-2005 12:13:53 |
|