Ver Mensaje Individual
  #2  
Antiguo 01-07-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Sería interesante que nos contaras qué tipo de excepción se genera.

Mientras tanto te comento que siendo TTable y TQuery descendientes de TDataSet y dado que el método Close (así como Open) está definido desde este ancestro común, puedes simplificar tu rutina:

Código Delphi [-]
procedure CerrarDatasets(ADM: TDataModule);
var j:Integer;
begin
with ADM do
  begin
  for j := 0 to ComponentCount - 1 do
    begin
    ShowMessage(Components[j].ClassName);

    if (components[j] is TDataSet) then
      TDataSet(components[j]).Close;
    end;
  end;
end;

Nota además que el uso del operador as es innecesario ya que este operador básicamente es una combinación del operador is con el moldeo de tipos normal, y dado que previamente usas is estarías haciendo una doble verificación.

// Saludos

Última edición por roman fecha: 01-07-2004 a las 03:02:05.
Responder Con Cita