Ver Mensaje Individual
  #5  
Antiguo 09-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Reputación: 27
Caral Va por buen camino
Hola
Viendo el código me doy cuenta de que aun asi no funciona, el asunto es el siguiente:
Cuando se busca se hace con el mismo query1, tanto el dbgrid como la consulta.
A la hora de hacer la consulta no se encuentra cargado el dato, esto hace que no encuentre nada (se puede ver con un showmess).
En el ejemplo el Qtemp tampoco estaba conectado.
Bueno, el asunto lo resolvi con una variable ya que por alguna razon no me muestra el dato del query sin guardarlo antes (osea trampa de novato jejeje).
No veo el caso de hacer un recorrido si se va a buscar en una sola linea ya que se actualiza según la matricula.
Tampoco veo por que hacer dos update cuando en uno solo actualiza los dos campos.
Bueno el asunto para mi seria asi y por lo menos a mi me funciona y actualiza los datos:
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var a,b :integer;
begin
  a:= 0;
  b:= 0;
  if Edit1.Text = '' then
  begin
  showmessage ('Falta MATRICULA');
  end;

Query1.Close;
Query1.SQL.Text := ' select (exp + expgrup + pract1 + pract2 + pract3 + pract4 + pract5 + trab_final) As pract,'+
                   '( parcial1 + parcial2 + practica + final ) As tfin from 20092 where matricula = '+QuotedStr(Edit1.Text);
Query1.Open;
a:= Query1.Fields[0].value;
b:= Query1.Fields[1].value;

Qtemp.sql.Text := 'Update 20092 set Practica = '+IntToStr(a)+', Tfinal = '+IntToStr(b)+' where Matricula = '+QuotedStr(Edit1.Text);
Qtemp.ExecSQL;

Query1.Close;
Query1.SQL.Text := ' select * from 20092 where matricula = '+QuotedStr(Edit1.Text);
Query1.Open;

end;
Bueno, por lo menos esto te sirve de practica.
Saludos
__________________
Siempre Novato
Responder Con Cita