Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   muestra de datos (https://www.clubdelphi.com/foros/showthread.php?t=86962)

jerryacuna 28-10-2014 14:41:54

muestra de datos
 
buenas todos, me encargaron migrar un sistema de Delphi 2 al 5XE, hay cosas que no me resultan, en el siguiente código muestro los datos obtenidos por un QRY general obtengo 6 registros pero no los puedo mostrar en un clientedataset

Código Delphi [-]
 with dmAyuda_Emp_Holding.QRY_General do
  begin
    SQL.Clear;
    SQL.Add('SELECT Codigo_Holding'
           +'  FROM QS_SYS_DEF_HOLDING'
           +' WHERE Codigo_Empresa = :Codigo_Empresa'
           );
    ParamByName('Codigo_Empresa').AsString := trim(sEmpresa);

    Open;
    if FieldByName('Codigo_Holding').IsNull then
       sCodigo_holding := ''
    else
       sCodigo_Holding := FieldByName('Codigo_Holding').AsString;
    Close;
  end;

  if Trim(sCodigo_Holding) <> '' then
  begin
    With dmAyuda_Emp_Holding.FDQuery4 do
    begin
     // dmAyuda_Emp_Holding.ClientDataSet4.Active := False;
      Close;
      ParamByName('Codigo_Holding').AsString := sCodigo_Holding;
      Open;

       dmAyuda_Emp_Holding.ClientDataSet4.Active := True;  (es aquí donde debería mostrar datos)

el QRY es la selección de dos tablas
el dataset esta relacionado con un TDATASETPROVIDER y este ultimo al QRY
adjunto select del QRY

Código SQL [-]
SELECT b.Codigo_Identidad
      ,b.Razon_Social_Pat
  FROM QS_SYS_DEF_HOLDING a
      ,QS_SYS_IDENTIDAD b
  WHERE a.Codigo_Holding = :Codigo_Holding
   AND a.Codigo_Empresa = b.Codigo_Identidad

muchas gracias de antemano

duilioisola 28-10-2014 15:32:01

¿Has verificado que las condiciones son correctas?
¿Por donde pasa cuando haces debug?
¿Has probado los resultados mostrándolos, por ejemplo?
¿Has probado que no de una excepción y esté capturada en otro sitio del código?

Código Delphi [-]
  if Trim(sCodigo_Holding) <> '' then
  begin
    ShowMessage('sCodigo_Holding = ' + sCodigo_Holding);
    With dmAyuda_Emp_Holding.FDQuery4 do
    begin
     // dmAyuda_Emp_Holding.ClientDataSet4.Active := False;
      Close;
      ParamByName('Codigo_Holding').AsString := sCodigo_Holding;
      Open;
      ShowMessage('Registros del Query = ' + IntToStr(RecordCount));

       dmAyuda_Emp_Holding.ClientDataSet4.Active := True;  (es aquí donde debería mostrar datos)
...

jerryacuna 28-10-2014 16:06:41

duilioisola, buenos días, si he hecho el debug y lo curioso es que antes de hacer el active
dmAyuda_Emp_Holding.FDQuery4.recordcount = 6
dmAyuda_Emp_Holding.ClientDataSet4.Active := True; (es aquí donde debería mostrar datos)

dejando el dmAyuda_Emp_Holding.ClientDataSet4.recordcount = 0
dmAyuda_Emp_Holding.FDQuery4.recordcount = 0

pierdo también los registros de QRY, he revisado los datos y todo esta bien hasta cunado activo el clientedataset

saludos cordiales

Casimiro Notevi 28-10-2014 17:13:55

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)


Recuerda poner los tags al código fuente, ejemplo:



Gracias :)

duilioisola 28-10-2014 18:33:14

Asegúrate de que el ClientDataSet no esté filtrado.
Por ejemplo
Código Delphi [-]
with ClientDataSet do
begin
   Filtered := False;
   Filter = 'ID = 123';
   Filtered := True;
end;


La franja horaria es GMT +2. Ahora son las 17:51:35.

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