Ver Mensaje Individual
  #1  
Antiguo 02-09-2013
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Reputación: 18
rolandoj Va por buen camino
Unhappy GetTableNames de dbExpress falla en Delphi 2007 ?

Hola a todos,

Estoy intentabdo pasar a dbExpress una herramienta para administrar tablas de Bases de Datos, la cual hice hace años con BDE; pero, cuandi intento ejecutar ek método GetTableNames de dbExpress este me saca un access violation.

Primero los pongo en contexto.

La herramienta que hice con BDE trabaja en general perfectamente bien; se me conecta a múltiples motores de bases de datos, y entre otras muchas cosas me permite importar archivos de texto y copiar tablas entre motores diferentes. Sin embargo, me he topado con un problema : En el BDE no estoy pudiendo trabajar bien con campos BCD; concretamente resulta que en mis nuevas aplicaciones la mayoría de las tablas usan campos DECIMAL(18,2).

Cuando empecé a hacer esas aplicaciones, principalmente por ese detalle, migré a dbExpress y traté de migrar también la herramienta; pero, no pude por lo de GetTableNames. En ese entonces por falta de tiempo no investigué más. Ahora, se me volvió crítico lo de poder pasar información entre tablas de múltiples motores de Bases de Datos; pero, sobre todo de Firebird que es el motor que más uso.

Por lo tanto necesito una de dos cosas : O poder usar GetTableNames con dbExpress o conseguir una herramienta que sea capaz de pasar tablas entre bases de datos; pero con dos condiciones :

1. Que soporte campos DECIMAL(18,2)
2. Que trabaje vía Web

GetTableNames lo estoy usando en Delphi 2007 y las pruebas con Firebird 2.0.3

El segmento de código es :

Código Delphi [-]
Function TdmConexiones.LeeNombresDeTablas:String;
Var
   TheList:             TStringList;
Begin
     TheList := Nil;
     Try
        TheList := TStringList.Create;
        MiDB.TableScope := [tsTable];
        MiDB.GetTableNames(TheList);
        LeeNombresDeTablas := TheList.Text;
     Finally
        TheList.Free;
     End;
End;

Vale anotar que el componente MiDB ya a abierto la conexión a la base de datos y llega a ese punto (verificado con depurador), sin problemas; así que el access violation no es por ahí.

Lei en alguna parte, con otro motor de Base de Datos, que hay que agregarle un parámetro más a GetTableNames porque está sobrecargado y que ese parámetro es el nombre del esquema. Si es eso, cual sería ese parámetro para el caso de Firebird ?
Responder Con Cita