Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   instruccion WITH... (https://www.clubdelphi.com/foros/showthread.php?t=31418)

armadillo 07-05-2006 18:12:25

instruccion WITH...
 
Colegas del grupo tengo un problema un tanto tonto que no se come
resolver... Me explico:

with Tablas.tbVisVen do
try
Disablecontrols;
...
...
finally
EnableControls;
end;

Todos conocemos esta intruccion, bien mi problema es el siguiente, a
mi me gustartia hacer esto:

Case seleccion of
0: tabla:=Tablas.tbVisVen;
1: tabla:=Tablas.tbVisAve;
2: tabla:=Tablas.tbVisRev;
end;
with tabla do
try
Disablecontrols;
...
...
finally
EnableControls;
end;

Explico Tablas es un DataModule y tbVisVen son TDataSets. Mi pregunta
es si lo puesto en el codigo se puede hacer, como debo declarar la
variable "tabla" y si no fuera asi, creo que este pequño codigo es
claro, como podria hacer algo parecido?
El tema esta que lo que va entre las sentencias WITH..Try..end se debe
repetir lo mismo solo que cambia la tabla de la base de datos...


Espero haber sido claro, y desde ya muchas gracias



PD: Quiero aclarar que intente declarar la variable Tabla como TDataSet y TpFIBDataSet (Ya que es el componente DataSet que utilizo) Pero nada no funciona

Thales 07-05-2006 20:11:34

Y por qué no lo haces así:

Código Delphi [-]
procedure Procesar(Tabla: TDataset);
begin
  with Tabla do
  begin
    Disablecontrols;
    try
      ...
      ...
    finally
      EnableControls;
    end;
  end;
end;
  ...
  case seleccion of
    0: Procesar(Tablas.tbVisVen);
    1: Procesar(Tablas.tbVisAve);
    2: Procesar(Tablas.tbVisRev);
  end;

Un saludo

armadillo 08-05-2006 12:57:27

No habia pensado en eso, lo probe y lamentablemente no funciona, ya que me da error..., los componente DataSet que utilizo son los FibPlus, asi que probe:
procedure Procesar(Tabla: TDataset);
begin
with Tabla do
begin
Disablecontrols;
try
...
...
finally
EnableControls;
end;
end;
end;
Y luego:

procedure Procesar(Tabla: TpFIBDataset);
begin
with Tabla do
begin
Disablecontrols;
try
...
...
finally
EnableControls;
end;
end;
end;Y nada, el tema esta que si fuera un DataSet comun funcionaria, pero aqui me da eror dentro del With cuando intento leer la propiedad SelectSQL del componente, no si tengo que agregar algunas unit en el Form, para que me lo coja, pero nada no logre hacerlo funcionar, hice una prueba con un Dataset Comun y corriente en otro Programa y si me funciona pero aqui utilizando esot compnentes no... en fin debere hacer un procedure por cada tabala

armadillo 08-05-2006 13:14:10

Me respondo a mi mismo :D

Bien lo he solucionado de la manera que me habias dicho Thales, respondiendo al mensaje anterior, me di cuenta que seguro me faltaba poner una unit en el USEs, y efectivamente eso era, puse una de las unit del FibPlus y salio funcionando como dios manda :)

Gracias!!!

vtdeleon 08-05-2006 16:48:07

Saludos

Armadillo, por favor utiliza las Etiquetas para los codigos (Etiquetas vB:=Delphi-SQL)


La franja horaria es GMT +2. Ahora son las 16:48:55.

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