Ver Mensaje Individual
  #6  
Antiguo 10-01-2017
koalasoft koalasoft is offline
Miembro
 
Registrado: oct 2004
Ubicación: Tenosique Tabasco
Posts: 86
Reputación: 20
koalasoft Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Lo más parecido en ADO, es el comando Locate. Si buscas en la ayuda verás que no es complicado y hay ejemplos.
Te funcionará, pero no es eficiente, porque está pensado para tablas en Local.

ADO funciona tanto con Bases de Datos (locales) como con SGBD (en red) y algunas operaciones están pensadas para los primero y otras para los segundos. Esto tiene que ver con lo comentado en el mensaje anterior. Es cuestión de cambiar de mentalidad.

Locate hace un recorrido secuencial por la tabla, hasta que encuentra el registro deseado. En local no hay problemas, pero en red y con una tabla un poco grande te va a consumir muchos recursos y te va a tardar mucho tiempo. Te va a funcionar, pero creo que en tu nuevo "escenario" no es aconsejable. Para ello puedes usar SQL. Una simple SQL (TADOQuery) utilizando el ID es mucho más eficiente y rápida.
Intenté hacerlo con el ADOQuery con este código:

Código PHP:
with ADOQuery1 do
  
begin
    Close
;
    
SQL.Clear;
    
SQL.Add('SELECT * FROM CLIENTES ');
    
SQL.Add('WHERE ID_CL LIKE ' +quotedstr('%' DBText1.Caption '%')+' ');
    
Open;
    if 
ADOQuery1.IsEmpty then
    Begin
    showmessage
('No se encuentra registrado, porfavor verifica los datos.');
    
End
     
Else
      
Begin     // si existe modifico el campo
      
AdoTable1.Edit;
      
AdoTable1.FieldByName('NOM_CL').AsString := Edit1.Text;
      
AdoTable1.Post;
      
End;
  
end
Pero no me edita eL campo que estoy especificando !!, Se supone que una vez que hice una consulta, en el DBText1.caption refleja un ID de os registros, en est caso el que consulte, entonces use la condicion de que si el ID que busque y muestra en el DBText lo busque, para que despues yo pueda editar otro campo, en este caso NOM_CL de la misma tabla.

Lo curioso de este es que si me lo edita, pero solo el 1 registro de la tabla, por ejemplo hago la consulta ... en la tabla hay varios ID (1....20) hice una consulta y en el DBTExt me pone el ID consultado, por ejemplo el ID = 4, ahora en el Edit1 coloco un nombre para que actualize el campo "nombre" del ID 4, al darle click actualiza el campo pero NO de ID 4 si no del primer registro.

Estaré haciendo algo mal?
Responder Con Cita