Hola Caro
En mi proyecto el error que se produce es este:
Project, Project1.exe raised esception class EOleException with message
'Error de sintaxis en la instruccion UPDATE', Process Stopped. Use Step o
Run to continue.
Este error lo produce en la primera actualizacion de un estudiantes cualquiera,
Luego no lo produce, y actualiza los campos, pero hay que darle doble clic al boton actualizar.
Este codigo lo he puesto de todas formas, juntos, separados, con dos botones y siempre lo mismo.
Código SQL
[-]
with datam.Query1 do begin
SQL.Text := ' select *, (exp + expgrup + pract1 + pract2 + pract3 + pract4 + pract5)As practica from 20092';
SQL.Text := ' select *,( parcial1 + parcial2) As parciales from 20092';
SQL.Text := ' select *,(practica + parciales + final + trab_final) As tfinal from 20092';
Filter:='matricula Like '''+ Edit1.Text + '*''';
Filtered:= True;
Open;
datam.Query1.First;
while not datam.Query1.Eof do // recorre la tabla en el query1
begin
// hace el update del query2
datam.Query2.sql.Text := 'Update 20092 set practica = '+datam.Query1Practica.AsString+' where matricula = '+QuotedStr(datam.Query1matricula.AsString);
datam.Query2.ExecSQL;
datam.Query2.SQL.Text := 'Update 20092 set parciales = '+datam.Query1Parciales.AsString+' where matricula = '+QuotedStr(datam.Query1matricula.AsString);
datam.Query2.ExecSQL;
datam.Query2.SQL.Text := 'Update 20092 set tfinal = '+datam.Query1tfinal.AsString+' where matricula = '+QuotedStr(datam.Query1matricula.AsString);
datam.Query2.ExecSQL; // ejecuta el query2
datam.Query1.Next; // recorre el query1 hasta el final
En la primera ejecución cuando se produce el error se para en esta línea del código que te presento.
Código SQL
[-]datam.Query2.SQL.Text := 'Update 20092 set parciales = '+datam.Query1Parciales.AsString+' where matricula = '+QuotedStr(datam.Query1matricula.AsString);
Luego reinicio y ya el problema no sale con el estudiante en cuestión, luego se produce cuando se le colocan las notas al siguiente estudiante consultado y así sucesivamente.
Gracias por tomarnos en cuenta.