Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Como Conectar TDatasetClient y TDatasetProvider.. (https://www.clubdelphi.com/foros/showthread.php?t=63479)

joelphi 16-02-2009 17:34:30

Como Conectar TDatasetClient y TDatasetProvider..
 
Hola a todos ¡¡
Bueno paso al tema.. Sucede que estoy realizando una aplicacion Orientada a objetos en delphi2007 y manejador Firebird2.0.. me tope con un problemita que llevo unos dias en el y no puedo salir.. Tengo una clase Conexion la cual se creo con un patron Singleton y es donde tengo 2 metodos..

-Actualizar() : Para las inserciones, actualizacion y Eliminaciones..
-Consultar() : Para las consultas y me retorna un TDatasource..

Ahora el problema es el siguiente..Realizo 6 consultas de direfentes tablas y lo resultante se los paso a 6 cxLookupCombobox en un evento OnShow de una form.. pero esto me crea conflictos ya que se pasa la ultima consulta para todos los cxLookups.. Andando por la red investigando tope con los TDatasetClient y los TDatasetProvider que son tablas en memoria.. quisiera saber como usarlos en tiempo de ejecucion . Como conectarlos entre si mediante Codigo..

Agradeceria mucho aquien me pudiera ayudar ya que es un poco urgente..

roman 16-02-2009 18:17:09

Antes de lidiar con ClientDataSets y/o DataSetProviders, creo que sería bueno que dilucidaras qué es lo que está pasando con tu esquema actual.

Al parecer, haces algo como:

Código Delphi [-]
LookupComboBox.ListSource := Conexion.Consultar(...);

para cada combo. Pero aquí habría que saber cómo estás generando el objeto que devuelve el método Consultar, ya que, por lo que describes, parece que lo estás reusando, de manera que el usado finalmente es el que se otenga en la última consulta.

// Saludos

joelphi 16-02-2009 18:35:58

Tengo asi..
 
Por cada consulta creo un Objeto Tdatasource y reuso el declarado como atributo..

Código Delphi [-]
 
Private
 Dataset:TDataset;
..
..
 
function TConexion.Consultar(CodigoSQL: String): TDataSource;
begin
    With Dataset Do
    Begin
         Close;
         SQLs.SelectSQL.Clear;;
         SQLs.SelectSQL.Add(CodigoSQL);
         Prepare;
         Try
              Open;
         Except on E:Exception do
         Begin
              Raise;
              Exit;
         End; 
         End; 
    End;  
    Result:= TDataSource.Create(Nil);
    Result.DataSet:=Dataset;
end;


Alguna Sugerencia ..??


La franja horaria es GMT +2. Ahora son las 13:25:06.

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