Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-02-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 21
aanil Va por buen camino
Hola:

Mi tabla se llama 20092, los campos se llaman Nota1, Nota2......Nota5, mi base de datos que esta hecha en access se llama Estudiantes. Los campos Nota1 a Nota5 es de tipo numérico.

El error en principio era ERROR DE SINTAXIS EN FROM. Ahora no me presenta ese error, sino que ahora dice:" Query1: Field 'Matricula' Not found "

Y este es mi real codigo completo.

procedure TForm3.BitBtn2Click(Sender: TObject);
begin
with datam.Query1 do begin
close;

Código SQL [-]
sql.Text := 'select (pract1 + pract2 + pract3 + pract4 + pract5) As practica from 20092'

open;
label40.Caption := (FIELDVALUES['practica']);
end;
end;
end.
Responder Con Cita
  #2  
Antiguo 06-02-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 28
Caral Va por buen camino
Hola
Una muestra EXACTA de lo que tienes.
Funciona perfectamente.
Espero te ayude.
Saludos
__________________
Siempre Novato

Última edición por Caral fecha: 07-02-2010 a las 03:06:46.
Responder Con Cita
  #3  
Antiguo 07-02-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 21
aanil Va por buen camino
Hola a todos y en especial a Caral

Todo esta funcionando perfectamente, ahora mi inquietud es que tengo un campo para guardar el resultado de la suma de todas las notas, se llama T_Notas y no se como guardar la suma de esas notas consultadas.

Este es mi codigo que esta funcionando perfectamente.

Código SQL [-]
datam.Query1.SQL.Text := ' select *,(exp + expgrup+ pract1 + pract2+ pract3 + pract4 + pract5) As Practica from 20092';
datam.Query1.Open;
Label40.Caption := IntToStr(datam.Query1 .FieldByName('Practica').AsInteger);

Gracias por las ayudas.
Responder Con Cita
  #4  
Antiguo 07-02-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 28
Caral Va por buen camino
Hola
Me imagino que el campo esta en al misma tabla.
Lo que se hace es recorrer la tabla y hacer un update según el nombre.
Aquí esta el mismo ejemplo con esta modificación.
Saludos
__________________
Siempre Novato

Última edición por Caral fecha: 08-02-2010 a las 03:10:39.
Responder Con Cita
  #5  
Antiguo 07-02-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 21
aanil Va por buen camino
Hola Caral.

Guiandome por el ejemplo que me enviaste hice esto:

procedure TForm3.BitBtn3Click(Sender: TObject);
begin

Código SQL [-]
datam.Query1.First;
   while not datam.Query1.Eof do   // recorre la tabla y hace el update
   begin
    datam.Query1. sql.Text := 'Update 20092 set practica = '+datam.Query1Practica.AsString+' where matricula = '+QuotedStr(datam.Query1matricula.AsString);
    datam.Query1.SQL.Text := 'Update 20092 set parciales = '+datam.Query1Parciales.AsString+' where matricula = '+QuotedStr(datam.Query1matricula.AsString);
    datam.Query1.SQL.Text := 'Update 20092 set calf_final = '+datam.Query1calif_final.AsString+' where matricula = '+QuotedStr(datam.Query1matricula.AsString);

    datam.Query1.ExecSQL;
  datam.Query1 .Next;


end;
end;


procedure TForm3.BitBtn2Click(Sender: TObject);
begin
Código SQL [-]
datam.Query1.SQL.Text := ' select *,(exp + expgrup+ pract1 + pract2+ pract3 + pract4 + pract5) As Practica from 20092';
datam.Query1.SQL.Text := ' select *,( parcial1 + pasrcial2) As parciales from 20092';
datam.Query1.SQL.Text := ' select *,( practica + parciales + final) As Calf_final from 20092';
 datam.Query1.Open;
end;

end.


El error se produce en datam.Query1 .Next;

Dice error de sintaxis en la instrucción UPDATE

Mas o menos siento que estoy cerca de llegar al final de mi proyecto, pero me falta algo por comprender.

Sera que debo de usar EQTemp.Sql? y no se de donde sale.

Gracias
Responder Con Cita
  #6  
Antiguo 07-02-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 28
Caral Va por buen camino
Hola
Coloca otro query en el datamodule. (query2)
A este query lo llamas como gustes, yo lo llame EQTemp (ya que lo uso en cualquier lado como temporal, es un query normal y corriente).
Si haces el update en el mismo query borra el contenido del anterior, entonces no encuentra nada y da un error de sintaxis u otros.
No puedes hacer un update sin no hay información, ya la borraste usando el mismo query.
Nada mas pon otro query, asi:
Código Delphi [-]
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.SQL.Text := 'Update 20092 set parciales = '+datam.Query1Parciales.AsString+' where matricula = '+QuotedStr(datam.Query1matricula.AsString);
    datam.Query2.SQL.Text := 'Update 20092 set calf_final = '+datam.Query1calif_final.AsString+' where matricula = '+QuotedStr(datam.Query1matricula.AsString);

    datam.Query2.ExecSQL; // ejecuta el query2
  datam.Query1 .Next; // recorre el query1 hasta el final
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 07-02-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 21
aanil Va por buen camino
Hola Caral:

Realmente no entiendo donde es que esta mal porque con tu codigo sigue produciendo el mismo error

Señala en azul este: datam.Query1.Next; // recorre el query1 hasta el final
Y sigue diciendo que es un error de sintaxis.
Que podra ser?

AAnil.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
suma de campos calculados pabloparra Conexión con bases de datos 0 12-03-2008 22:14:12
Suma de dos Campos en un BDGrid esimon SQL 6 14-09-2005 20:50:12
Suma de campos b3nshi Conexión con bases de datos 1 13-04-2005 03:13:40
suma de campos novato cesarjbf SQL 4 01-09-2004 10:12:33
Problema con Suma de Campos TIME en SP cacuna Firebird e Interbase 1 03-09-2003 16:37:38


La franja horaria es GMT +2. Ahora son las 00:47:09.


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