Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Componentes Mercury - como actualizarlos (https://www.clubdelphi.com/foros/showthread.php?t=95857)

lavtaro 04-09-2022 20:53:49

Componentes Mercury - como actualizarlos
 
Hola, nuevamente necesito su ayuda, tengo varios sistemas con Delphi 2007 y los componentes MDO Lib (Mercury Database Objects) para acceder a Firebird , el problema es que no es posible instalar en las ultimas versiones de Delphi y en la página del creador no hay información, hay alguna manera de cambiar componentes de una manera más fácil o si es posible modificar esos componentes para que sea posible instalarlos, muchas gracias a todos.

Casimiro Notevi 04-09-2022 22:43:35

Supongo que habra que hacer cambios en los "requires" para adaptarlos a los nuevos delphi:
Código:

requires
  vcl,
  vcldb,
  designide,
  dcldb,


lavtaro 05-09-2022 01:14:56

Muchas gracias por la respuesta, estos son los errores que da al ejecutar la opción "build all proyects" , me daría el trabajo de dar solución a los problemas pero me gustaría saber la opinión de los que saben más si sería posible hacerlo, nuevamente muchas gracias.
Código:

[dcc32 Hint] MDOCustomDataSet.pas(95): H2365 Override method TMDOStringField.create should match case of ancestor TStringField.Create
[dcc32 Error] MDOCustomDataSet.pas(290): E2037 Declaration of 'AllocRecordBuffer' differs from previous declaration
[dcc32 Error] MDOCustomDataSet.pas(294): E2137 Method 'ClearCalcFields' not found in base class
[dcc32 Error] MDOCustomDataSet.pas(302): E2037 Declaration of 'FreeRecordBuffer' differs from previous declaration
[dcc32 Error] MDOCustomDataSet.pas(304): E2137 Method 'GetBookmarkData' not found in base class
[dcc32 Error] MDOCustomDataSet.pas(305): E2137 Method 'GetBookmarkFlag' not found in base class
[dcc32 Error] MDOCustomDataSet.pas(310): E2137 Method 'GetRecord' not found in base class
[dcc32 Error] MDOCustomDataSet.pas(314): E2137 Method 'InitRecord' not found in base class
[dcc32 Error] MDOCustomDataSet.pas(328): E2137 Method 'InternalInitRecord' not found in base class
[dcc32 Error] MDOCustomDataSet.pas(338): E2137 Method 'InternalSetToRecord' not found in base class
[dcc32 Hint] MDOCustomDataSet.pas(345): H2365 Override method TMDOCustomDataSet.PsGetTableName should match case of ancestor TDataSet.PSGetTableName
[dcc32 Error] MDOCustomDataSet.pas(356): E2137 Method 'SetBookmarkData' not found in base class
[dcc32 Error] MDOCustomDataSet.pas(357): E2137 Method 'SetBookmarkFlag' not found in base class
[dcc32 Error] MDOCustomDataSet.pas(413): E2137 Method 'GetCurrentRecord' not found in base class
[dcc32 Error] MDOCustomDataSet.pas(609): E2072 Number of elements (36) differs from declaration (52)
[dcc32 Error] MDOQuery.pas(374): E2029 ':=' expected but ':' found
[dcc32 Error] MDOQuery.pas(375): E2010 Incompatible types: 'TFieldType' and 'procedure, untyped pointer or untyped parameter'
[dcc32 Fatal Error] MDOCustomDataSet.pas(675): F2063 Could not compile used unit 'MDOQuery.pas'


Casimiro Notevi 05-09-2022 09:24:35

Me temo que tendrás que ir solucionando una a una cada línea de error que muestras.
A las malas, si no queda más remedio, creo que será más fácil adaptar tu programa a las IBX.

Neftali [Germán.Estévez] 06-09-2022 08:30:30

Si has buscado versiones nuevas de los componentes y no están, la verdad es que tiene mala pinta. Porque los errores no son temas de conversión o de tipos que hayan cambiado, sino que se queja de que hay métodos que no existen. O porque ha cambiado su visibilidad o porque hay que implementarlos.
No parece tarea fácil sin conocer los componentes.

Yo haría una pruebas para cambiar a componentes estandard de delphi, ya sean los IBX o (casi mejor) FireDAC, para ver si son compatibles.

Si finalmente deseas cambiar creo que hay alguna utilidad que te ayuda a cambiar unos componentes por otros (GExperts/cnWizards)

Casimiro Notevi 06-09-2022 11:31:41

Y en qué versión de Delphi estás instalándalo.

lavtaro 06-09-2022 17:13:13

Cita:

Empezado por Casimiro Notevi (Mensaje 548191)
Me temo que tendrás que ir solucionando una a una cada línea de error que muestras.
A las malas, si no queda más remedio, creo que será más fácil adaptar tu programa a las IBX.

Traté de migrar un sistema pero me pilló el tiempo, pero es factible, lo malo que al hacer los reemplazos de componentes el IDE da errores, entonces dificulta el trabajo

Cita:

Empezado por Casimiro Notevi (Mensaje 548209)
Y en qué versión de Delphi estás instalándalo.

En Delphi Berlin.

Muchas gracias por sus respuestas.

lavtaro 06-09-2022 17:15:36

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 548207)
Si has buscado versiones nuevas de los componentes y no están, la verdad es que tiene mala pinta. Porque los errores no son temas de conversión o de tipos que hayan cambiado, sino que se queja de que hay métodos que no existen. O porque ha cambiado su visibilidad o porque hay que implementarlos.
No parece tarea fácil sin conocer los componentes.

Yo haría una pruebas para cambiar a componentes estandard de delphi, ya sean los IBX o (casi mejor) FireDAC, para ver si son compatibles.

Si finalmente deseas cambiar creo que hay alguna utilidad que te ayuda a cambiar unos componentes por otros (GExperts/cnWizards)

Justamente es compatible mi código con los componentes IBX pero el IDE me da errores al comenzar a cambiar los componentes, entonces eso demora el trabajo, voy a investigar si es posible usar esas utilidades y aviso, muchas gracias por su respuesta.

movorack 06-09-2022 18:31:02

Con reFind, puedes hacer el reemplazo de componentes, propiedades, métodos, cambiar los uses, etc.

Lo usé para migrar de la versión de Firedac en XE3 (TAD) a la de Tokyo (TFD) y hasta sirve para modificar los DPR

lavtaro 06-09-2022 22:58:23

Cita:

Empezado por movorack (Mensaje 548216)
Con reFind, puedes hacer el reemplazo de componentes, propiedades, métodos, cambiar los uses, etc.

Lo usé para migrar de la versión de Firedac en XE3 (TAD) a la de Tokyo (TFD) y hasta sirve para modificar los DPR

Voy a a intentar con esa herramienta también, voy informado aquí, muchas gracias !!!

Neftali [Germán.Estévez] 07-09-2022 08:45:07

Esta es la opción de los GExperts: Replace Components, que te permite "mapear" propiedades.


lavtaro 08-09-2022 01:16:51

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 548222)
Esta es la opción de los GExperts: Replace Components, que te permite "mapear" propiedades.


Don Germán, estoy haciendo unas pruebas y funciona muy bien GExperts reemplazando componentes, este fin de semana voy a trabajar en migrar una aplicación completa y tratando de configurar bien GExperts, muchas gracias por su ayuda.

lavtaro 17-09-2022 02:34:52

Terminé la primera parte de mi trabajo que era dejar funcionando 2 aplicaciones, informo como logré hacerlo:
- GExperts reemplacé los componentes, sin mayores problemas.

El tema fue con los campos de tipo string , en MDO son de tipo TMDOStringField pero en los componentes para interbase de Delphi son TIBStringField , no me quedó mas remedio que regenerar los campos persistentes en todos los componentes IBCustomDataSet, IBTable, IBQuery. Traté con refind que efectivamente cambiaba en el código el tipo de columna pero al compilar Delphi 2007 entregaba errores, a pesar de esto fue mucho más rápido que hacerlo de manera manual.

Ahora tengo que probar la aplicación completa en ejecución para ver si aparece algún error, pero sus funciones principales no tienen problemas

Nuevamente muchas gracias a Ustedes por su ayuda.

Casimiro Notevi 17-09-2022 12:16:08

^\||/^\||/^\||/


La franja horaria es GMT +2. Ahora son las 21:30:08.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi