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)
-   -   Busqueda y sustitucion en tablas (https://www.clubdelphi.com/foros/showthread.php?t=31032)

kia 26-04-2006 11:16:41

Busqueda y sustitucion en tablas
 
Hola a todos.:)
Utilizo D5 y XP con tablas paradox, He terminado un formulario que efectua busqueda y sustitución de datos de un campo en todas las tablas.
Pero no todas las tablas tienen los mismos campos. :rolleyes: Busco el campo "Placa" en las tablas, cuando encuentra dicho campo lo modifica, pero cuando busca el campo en una tabla donde no existe me da error. No acierto en la manera de evitarlo,:( me dais una mano...soy novata. Gracias.;)

marcoszorrilla 26-04-2006 17:47:32

Lo mejor es que primero te cerciores que el campo existe en la tabla, y sino existe pues no buscas y pasas a la siguiente, el método FindField, te vendrá bien, aquí te pongo un ejemplo de la ayuda de Delphi.
Código Delphi [-]
with Table1 do

begin
  { This is the safe way to change 'CustNo' field }
  FindField('CustNo').AsString := '1234';
 { This is *not* the safe way to change 'CustNo' field }
  Fields[0].AsString := '1234';

end;

Un Saludo.

kia 27-04-2006 19:55:21

hola de nuevo
 
Busco por por un campo y luego filtro la tabla.
luego selecciono el campo para cambiar dato error por dato bueno,
continua con el parrafo siguiente:

Código Delphi [-]

  // showmessage('campo busca  '+laton);
  // showmessage('valor filtro '+cobre);
  // showmessage('campo cambia  '+oro);
  // showmessage('valor error '+plata);
  // showmessage('valor bueno '+platino);

 Table1.First;
   while not Table1.Eof do //recorremos la tabla filtrada anteriormente
    begin
     Table1.Edit;
     if buscafecha='no'then
        begin  //con string
        if Table1.FieldByName(ORO).asstring=PLATA then //campo dato erroneo
           Table1.FieldByName(ORO).Value:=PLATINO;      //campo dato bueno
        end else begin / con fechas 
        if Table1.FieldByName(ORO).asdatetime=strtodate(PLATA) then
           Table1.FieldByName(ORO).Value:=PLATINO;
        end;
     Table1.Post;
     if laton<>oro then//evita el next cuando busca y cambia la misma tabla
        Table1.next;
    end;
    Table1.Refresh;
  end;

Ahora continua la siguente tabla repitiendo el proceso, y va ok.
pero si la tabla no existe el campo de busqueda 'laton' da Error.:mad:
Creo que no me explique bien anteriormente.Gracias por la respuesta.Kia:rolleyes:


La franja horaria es GMT +2. Ahora son las 21:04:59.

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