![]() |
Error en RXMemoryData com Delphi XE5
Saludos a todos,
Tengo una aplicación de funciona correctamente en Delphi 7 y estoy migrando a Delphi XE5, y con esto de la instalación de los nuevos componentes, me he topado con un error que probablemente es un BUG de los nuevos componentes que me descargue... He buscado en todos los foros, Google, etc. y no he conseguido algo que me pueda ayudar. Los componentes son los RXLib para Delphi XE5 y el objeto que me esta dando problemas es el RXMemoryData, el error que me ocurre lo explico en el siguiente código:
Este código me funciona perfectamente en Delphi 7, pero estos componentes RXLib en Delphi XE5 al correr paso a paso me voy cuenta que el valor "Prueba" no es asignado al "CampoNombre" de la tabla RXMemoryData. La unica diferencia que veo pueda estar afectando, es que el RXMemoryData utiliza los tipos de dato AnsiString en vez de String. He probado realizando lo siguiente:
entre otras pruebas y no logro hacer que el campo que cree en el RXMemoryData le sea asignado el valor correspondiente. Muchas Gracias, Espero me puedan ayudar. Saludos. |
¿Sale algún mensaje de error?
|
No, simplemente al correr paso a paso me doy cuenta de que el valor no le es asignado al campo creado en el RXMemoryData, revise las propiedades de éste, comparado con el de delphi 7 y estan idénticas. El codigo original de delphi 7 utiliza mas campos pero el comportamiento es el mismo y tal como lo reproduje en el ejemplo que coloque en el Hilo.
|
Reproduciendo el error nuevamente hice lo siguiente:
Ingrese 2 registros al RXMemoryData, y al preguntar la propiedad recordcount me dice que hay 2 registros, pero al recorrer con el "while", el campo: "RxMemoryData1Nombre.Value" aparece vacio. El "FieldKind" del campo "Nombre" ingresado en el RXMemoryData es "fkData". Probe tambien colocandolo como: "fkCalculated" y nada, de ninguna forma almacena el valor, solo ingresa el registro en blanco. ¿Que podrá ser? De verdad no tengo ni idea... Asumo que pueda ser un BUG de estos nuevos componentes RXLib, el problema es que en la aplicación que estoy migrando hay muchos procesos que utilizan este componente RXMemoryData y cambiar esas rutinas es inicialmente Impensable... |
Intentar con esto
A mi me paso lo mismo con una campo de esas características, lo que hice fue borrar los campos de la tabla de memoria y crearlos nuevamente, prueba con eso.
|
Nueva Solución encontrada...
Nada Manuel,
El error persiste, continué investigando y encontré aqui en ClubDelphi que al parecer este error se ha venido presentando desde la versión de RXLib de Delphi XE. Ya encontré una solución alterna, la planteo por si alguien se le presenta el mismo inconveniente. En mi caso el RXMemoryData no lo conecto a una Tabla en BD ya que lo utilizo para la revisión de un proceso. La solución es la siguiente: En vez de utilizar un RXMemoryData, utilice un TClientDataSet, obligatoriamente debo asociarle un TDataSetProvider y a este DataSetProvider es necesario asociarle un DataSet (ó Tabla en BD), por esto le asocie el RXMemoryData original. Una vez hecho esto puedo realizar lo siguiente en código Delphi:
Es algo rebuscado, pero a mí me funciona por los momentos. Espero a alguien lo pueda sacar de apuros también. Muchas Gracias, Saludos |
Se agradece mucho tu aporte.
|
| La franja horaria es GMT +2. Ahora son las 06:50:13. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi