2012-04-08 19 views
7

Estoy convirtiendo una aplicación grande de Delphi 6 de Delphi 2009.El problema con el tipo de falta de coincidencia con TBCDField y TfmtBCDfield y compatibilidad Oracle

Fue construido originalmente para utilizar Oracle 8i, pero ahora tiene que utilizar para Oracle 11g. La aplicación original está usando felizmente Oracle 11g y lo haré si lo reconstruyo utilizando Delphi 6.

Para superar algunos problemas de visualización de caracteres/visualización de caracteres y otras molestias menores con la aplicación desarrollada en los últimos 11 años , Decidí reconstruirlo en una versión posterior de Delphi (que también se ha retrasado durante un par de años, por lo tanto, utilizando 2009.) que se compró para este propósito. Ahora he vencido las más de 550 advertencias de compilación sobre esto y aquello y el otro.

Pero ahora casi todas las mesas/fuentes intento abrir en contra de mi examen informes de bases de datos Oracle 11g "No coinciden los tipos de campo 'XXXXXX' Esperando FmtBCDField real BCD.

¿Hay alguna forma de evitar esto sin tener que abrir toda 80+ módulos de datos que garantizan compatibilidad con la base de datos de clientes? No me importa cambiarlos todos pero no puedo probarlos contra la base de datos en vivo sin mucho problema y no quiero hacerlo solo para obtener el ¡error opuesto en el sitio del cliente!

Estos son casi todos los campos persistentes en TClientDataSets conectados a consultas ADO pero son acces sed usando FieldByName en (casi de nuevo) todos los casos.

¿Alguna idea?

+0

Hola, tengo el mismo problema. Solo una sugerencia: primero, intente ejecutar una aplicación ejecutable y verifique si el problema persiste. a veces se ejecuta bien en ejecutable pero obtiene algunos errores durante la depuración. segundo, dijiste usando ADO. Supongo que usa el controlador ODBC para Oracle 11g. Tal vez el problema es ese controlador ODBC o ADO en sí. – theodorusap

Respuesta

0

Tuve un problema similar cuando necesitaba mi aplicación DBXpress para trabajar con Oracle 9 y 11. Por algún motivo, DBXpress reconoce algunos campos NUMBER de diferentes formas dependiendo de la versión de la base de datos Oracle. Trabajé alrededor volcando los campos numéricos a campos de números más grandes y cambiando campos BCD para campos FMTBCD en todas mis consultas, el molde forzó a DBXpress a reconocer cada NÚMERO como un FMTBCD ya que BCD no podía soportar números tan grandes, tal vez sea trabajar en ADO también.

Cuestiones relacionadas