Ir al contenido


Foto

Desarollo aplicacion datasnap ORACLE/FIREBIRD


  • Por favor identifícate para responder
4 respuestas en este tema

#1 agidar

agidar

    Member

  • Miembros
  • PipPip
  • 14 mensajes

Escrito 07 junio 2011 - 08:53

Hola estoy tratando de desarrollar una aplicacion en 3 capas con datasnap y utlizando los dbexpress. Mi idea es que esta aplicacion pueda utilizar cualquier base de datos. Definiendo en un fichero ini los parametros necesarios conectará con una y con otra.

Pues hasta aqui todo perfecto pero ahora tengo  un problema con los tipos de datos entre ORACLE Y FIREBIRD. Un tipo de dato entero dbexpress para firebird lo trata como Int32Type  mientras que en Oracle seria BcdType  . Esto es un problema cuando añades los campos al fieldeditor ya que si quieres cambiar de una base de datos a otra da un error precisamente con la conversion de tipos.

Curisoamente con MYSQL, MS SQL, FIREBIRD E INTERBASE no hay problema ya que los trata como Int32Type pero con ORACLE si.

¿Alguna idea para solucionar este problema?

Muchas gracias y un saludo



  • 0

#2 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 07 junio 2011 - 09:46

Hola.

Esto apunta a un fallo en los drivers de Oracle.

¿ Has probado los distintos tipos enteros que pueda tener Oracle ?. Quizás tipos como el Smallint (o similar), tienen suficiente capacidad para tus necesidades y el driver dbexpress los reconoce correctamente.

Saludos.
  • 0

#3 agidar

agidar

    Member

  • Miembros
  • PipPip
  • 14 mensajes

Escrito 07 junio 2011 - 10:00

http://docwiki.embar...orted_Databases

Aqui viene bien claro el mapeo de tipos

Este problema me impide tener la misma aplicacion funcionando contra las dos bases de datos.
  • 0

#4 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 07 junio 2011 - 10:24

Saludos.

Con eso tengo que lidiar a diario, no precisamente con los DBX, en mi caso con los componentes del BDE (sí, en la empresa todavía utilizamos BDE).

La manera más "simple" de lidiar con esto es no utilizar persistencia osea no añadir los campos en el Field Editor; y referirse a los campos vía el método FieldByName.

Aclaro que no tengo a manos ningún desarrollo a 3 capas por lo que no sé si esa solución es factible.
  • 0

#5 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 07 junio 2011 - 11:03

http://docwiki.embar...orted_Databases

Aqui viene bien claro el mapeo de tipos

Este problema me impide tener la misma aplicacion funcionando contra las dos bases de datos.


Este cuadro es incompleto, no viene ningún tipo entero para Oracle. El tipo number, por ejemplo, es un tipo decimal, y por eso lo mapea a BCD.

A mi me sigue pareciendo un bug del driver. ¿ Has probado algún driver dbExpress de terceros ?

http://www.devart.com/dbx/oracle/

Hay un proyecto antiguo, dbExpress Plus, que te permitía personalizar los mapeos de tipos de los campos, pero veo que no se ha actualizado en mucho tiempo.

http://dbexpressplus.sourceforge.net/

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.