Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-04-2013
Ignacio Gentile Ignacio Gentile is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 15
Poder: 0
Ignacio Gentile Va por buen camino
Problema con TDBXReaders dentro de TMiClase(TObject)

Buenas!

Estoy trabajando con Datasnap y tengo corriendo una aplicación cliente que le envía peticiones al servidor Datasnap. Trabajo con base de datos Interbase, Delphi XE y utilizo para las conexiones los componentes IB.

El problema con el que me encuentro es el siguiente:

Invoco al servidor Datasnap para obtener una serie de registros que cumplan con determinada condición. Para ello en el lado servidor realizo una sentencia SQL y al resultado lo paso a un DBXReader y se lo envío a la aplicación cliente. La misma, lo pasa a un ClientDataSet para mostrarlo en una grilla.
Cuando el resultado de la invocación es el DBXReader todo funciona perfectamente pero el problema aparece cuando el DBXReader se devuelve dentro de una clase, definido como un atributo más. En dicho caso el error que se obtiene es el siguiente:

Remote Error: Internal: Type tkPointer is not currently supported

No entiendo bien cual es la lógica del error ya que realizo la misma lógica en ambos casos y solo cambia el tipo de dato que devuelve la función invocada.

La instrucción que devuelve el resultado desde el Datasnap, en el caso en que anda bien es:

Código Delphi [-]
 Result := TDBXDataSetReader.Create(cdsObtenerDatos, false)
)

La instrucción que devuelve el resultado desde el Datasnap, en el caso en que anda NO bien es:

Código Delphi [-]
 Result := tResultObtener.Create;
Result.resultDBXReaders := TDBXDataSetReader.Create(cdsObtenerDatos, false);

La definición de la clase contenedora es la siguiente:

Código Delphi [-]
tResultObtener = class (TObject)
    private
      fResultGral: tResultGral;
      fResultDBXReaders: TDBXReader;
    published
      property resultGral: tResultGral read fResultGral write fResultGral;
      property resultDBXReaders: TDBXReader read fResultDBXReaders write fResultDBXReaders;
  end;
Responder Con Cita
  #2  
Antiguo 18-04-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Intenta derivar tu clase, no de TObject, sino de alguna otra que sea soportada por DataSnap. Quizá con TPersistent o alguna otra funcione. Te lo digo sin mucha certeza por falta de experiencia suficiente, pero pensando que algo de RTTI debe estar disponible a la hora de pasar objetos entre capas. Incluso podrías intentar derivar tu clase de TDBXReader, en lugar de usar ésta como propiedad.

Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con módulo web y conexiones ADO dentro de una DLL mamaro Conexión con bases de datos 2 11-11-2010 00:19:59
Convertir Un TObject a String? Jhonjhon_123 OOP 5 22-06-2010 19:05:37
Saber que clase-hija es un TObject eflosten OOP 6 20-04-2010 12:31:38
Problema al remplazar una substring dentro de una string gulder Varios 2 24-11-2008 19:51:24
Problema con eventos dentro de un SP Choclito Firebird e Interbase 2 08-02-2006 15:30:36


La franja horaria es GMT +2. Ahora son las 07:01:39.


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
Copyright 1996-2007 Club Delphi