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 08-03-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 21
aanil Va por buen camino
Hola les paso el codigo que funcionaba y que ahora NO HACE NADA, para ver donde es que esta el problema.

La base de datos tiene dos nombres reales, esta comprimida en WinZip.

Les agradecería sus ayudas.
Archivos Adjuntos
Tipo de Archivo: zip borrame.zip (63,9 KB, 4 visitas)
Responder Con Cita
  #2  
Antiguo 09-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Estoy un poco perdido en esto.
Que es lo que pretendes hacer, cual es el problema concreto, NO LO QUE FALLA.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 09-03-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 21
aanil Va por buen camino
Hola Caral

Hace varios días y creo que tu me ayudaste con esto, recuerdo que el código me lo ayudaste a armar y estaba corriendo bien, pero no se lo que paso, que ese código ya no me suma esos campos y no me actualiza el campo TFinal.

Ese código estaba trabajando bien hasta que modifique mi proyecto, o sea que le hice varios arreglos y dejo de funcionar.

En el archivo ajunto creo que debería funcionar; es sumar en una fila, las notas de un estudiante, luego guardar ese resultado en la tabla como un total.

Y lo mejor seria que se actualizara la tabla entera sin tener que consultar estudiante por estudiante, que fuera un grupo completo por asignatura o clave.

Por favor revisa el archivo adjunto anterior a ver si se puede sumar y guardar el resultado.


Gracias.
Responder Con Cita
  #4  
Antiguo 09-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
El asunto es que llamas a una consulta total y tambien a una suma, esto confunde a la bd y no genera el dato.
Hay que buscar el dato que se necesita, no mas, en este caso solamente al campo Matricula y la suma de los campos que necesitas.
Otra cosa es darle a estas sumas un nombre que no sea igual al de un campo, no solo por la bd, tambien por no confundirse uno mismo.
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
  try
  if Edit1.Text ='' then
  showmessage ('Falta MATRICULA');
  except
  showmessage ('Falta MATRICULA');

Query1.SQL.Text := ' select Matricula, (exp + expgrup + pract1 + pract2 + pract3 + pract4 + pract5 + trab_final) As pract,'+
                   '( parcial1 + parcial2 + practica + final ) As tfin from 20092';
Query1.Open;

while not Query1.Eof do
begin
Qtemp.sql.Text := 'Update 20092 set practica = '+Query1.fieldbyname('pract').AsString+' where Matricula = '+QuotedStr(Edit1.Text);
Qtemp.ExecSQL;

Qtemp.SQL.Text := 'Update 20092 set tfinal = '+Query1.fieldbyname ('tfin').AsString+ ' where Matricula = '+QuotedStr(Edit1.Text);
Qtemp.ExecSQL;
Query1.Next;
end;

Query1.Close;
Query1.Open;
end;

end;
Si hicieras un showmesage al final de la consulta verias que en tu caso no devuelve nada y por supuesto nada da.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 09-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 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
  #6  
Antiguo 09-03-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 21
aanil Va por buen camino
Gracias Caral,

Esto si me funciona, lo voy a usar.

Muchas, gracias..

Una cosa tengo que desconectar o dejar de usar una unidad, que esta conectada a un datamodule, no quiero usar el datamodule, para usar este código en el mismo form.

No se como me desconecto de datamodule.

Saludos.
Responder Con Cita
  #7  
Antiguo 10-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Parece que estas esperando una respuesta?.
Por lo menos yo no entiendo lo que quieres hacer.
Desconectar una UNIT del Datamodule???????
No entiendo nada.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #8  
Antiguo 09-03-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 22
movorack Va camino a la famamovorack Va camino a la fama
Aunque ya te dieron la solución...

Siempre nos habias pasado el código de actualización... y aunque este tenia algunas fallas de forma no significaba que no debiera funcionar... solo descargando el ejemplo que colocaste fué que encontré la razón pq no te funcionaba...

La cuestión era que tenias un bloque try..except donde TODO el código de actualización estaba dentro del área de excepción y hasta que no ocurriera un error nunca se ejecutaría.

así lo tenias en el ejemplo que subiste:

Código Delphi [-]
  try
    if Edit1.Text ='' then
      showmessage ('Falta MATRICULA');
  except
    ... //código de actualización
  end;
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #9  
Antiguo 09-03-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 21
aanil Va por buen camino
Hola Movorack

Eso fue lo que paso, después que me funcionaba el código, yo le adapte ese try except para que no me diera el error de no escribir la matricula, de ahí en adelante parece que fue que se puso que no hacia nada..

Gracias..
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
¡Delphi 7 funcionando en Ubuntu! kovaski Linux 22 29-09-2008 17:26:04
TurboPHP, ahora de código abierto, ¿competidor para Delphi for PHP? dec PHP 16 20-01-2008 09:15:38
Sobrescribir un evento y ejecutar también el que estaba previamente Piratta OOP 6 26-07-2007 11:00:44
Aplicaciones funcionando sin BDE correcaminos2k2 Conexión con bases de datos 1 12-06-2004 14:51:41


La franja horaria es GMT +2. Ahora son las 21:39:36.


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