Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-07-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Gracias por ayudar AzidRain.

Bueno, a ver... si logro unir las cosas siguiendo tu modelo híbrido. Con lo que yo voy armando.

1. Yo tengo varias clases, que operan y se pasan parámetros. Todo lógica, nada de interfaz... Este conjunto forma la capa lógica.
2. En la capa más baja (Datos) está el/los DataModule/s con el Connection, y posibles algunos que otros Tables, Querys, etc

La comunicación entre las clases y la base de datos debe pasar por el DataModule. Eso creo que está claro, al menos así lo entiendo yo. Y dependiendo de las consideraciones, analáisis, etc... se debe hacer un "canal" más o menos estrecho.

Este canal de comunicación está formado por clases que son las que propiamente tienen encapsulada los eventos y/o procedimientos para permitir las operaciones habituales sobre la base de datos:
*Agregar
*Modificar
*Borrar
*Consultar

Por lo tanto estas clases deberán ser las más bajas de la capa.
Hasta aquí llego teóricamente, ahora... en forma práctica... ¿esto se consigue con algo similar a esto?

Código Delphi [-]
TUnaClaseDeInteres = class
  private
     FModulo: TDataModule; // Un apuntador al DataModule al que debe invadir?
     FConsulta: TQuery; // Un Query para armar consultas?
     // O Tal vez indicar como privado componentes especializados. Como los IBX en mi caso...
  public
     // Propiedades
     constructor Create; override;
     destructor Destroy; override;
     // Funciones y/o procedimientos
     function Agregar(InfoInteres: TInfoInteres): algun_tipo_adecuado; 
     function Agregar: algun_tipo_adecuado; overload;
     // Asi... en forma análoga para Modificar, Borrar y/o Consultar
end;

De modo que, si el análisis lo amerita se pueda hacer algo como:

Código Delphi [-]
TUnaClaseHija = class(TUnaClaseDeInteres);
  private
     FAlgodeInteres: tipo;
     //....
  public
    // Otras cosas interesantes? Algo más directo y especializado para un motor en particular talvez?
end;

Ahora, como le indicaría que debe hacer contacto con el datamodule? Allí me lio... Sería conveniente ver la posibilidad de hacer algo como:
Código Delphi [-]
   UnaClaseDeInteres.AsignarModulo(ElDataModuleAdecuado);

Si voy entendiendo bien... o si tienen críticas, serán escuchadas.
Muchas gracias.
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 02-07-2007 a las 05:40:44.
Responder Con Cita
  #2  
Antiguo 02-07-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
El apuntador al TDatamodule viene así:
Código Delphi [-]
property DataModule : TDatamodule read FDatamodule write SetDAtaModule;
....


procedure TXXX.SetDatamodule(Value:TDatamodule);
begin
  if Value <> FDatamodule then
  begin 
    Value := FDatamodule;
    if Assigned(Value) then
    begin
       // ya podemos usar el datamodule
      //  ojito que se puede hacer :
     //   Datamodule := nil; y habrá que tenerlo en cuenta para no traspasar
    //    un nil
    end;
end;

Yo usaría herencia visual para el datamodule, para al menos tener algunas propiedades ya asígnadas. Será lógico tener el Datamodule principal (donde reside el TDatabase y TTransaction ya configurados) y los nuevos datamodules tendrán un "enlace" a dichos componentes del Datamodule principal.

Para asignar el Datamodule que nos interese, pues como siempre se hace en delphi:
Código Delphi [-]
  UnaClaseDeInteres.Datamodule := dmPepito;


// Adicionalmente se podría desconectar la clase del datamodule así:
  UnaClaseDeInteres.Datamodule := nil; // no sé si será de utilidad... pero ahí está.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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
Información sobre FireBird mosorio Firebird e Interbase 2 25-03-2024 19:49:58
Cambio de modelo de 3 a 2 capas Toni Providers 6 23-05-2005 23:17:42
modelo de 3 capas - delpji s_dominguez Providers 2 21-05-2005 18:14:49
Cantidad de Informacion en Firebird Choclito Firebird e Interbase 9 27-10-2004 20:37:27
informacion para construir una aplicacion de tres capas muli Providers 2 23-02-2004 01:22:04


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


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