Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-03-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 19
aanil Va por buen camino
Codigo que estaba funcionando y ahora NO

Hola,

Este codigo estaba funcionando, ahora no hace nada no actualiza la tabla.

Este codigo no presenta error, pero no me actualiza la tabla

Código Delphi [-]
datam.Query7.SQL.Text:= 'Select * From 20092 Where matricula LIKE:variable';
datam.Query7.Parameters[0].Value:= '%'+ Edit1.Text +'%';
datam.Query7.Open;

datam.Query7.SQL.Text := ' select *, (exp + expgrup + pract1 + pract2 + pract3 + pract4 + pract5)As practica,( parcial1 + parcial2+ practica + final + trab_final) As tfinal from 20092';
datam.Query7.Filter:='matrciula Like '''+ Edit1.Text + '*''';
datam.Query7.Filtered:= True;

datam.Query7.Open;
 
datam.Query7.First;
while not datam.Query7.Eof do   // recorre la tabla en el query7
begin

datam.Qtemp.sql.Text := 'Update 20092 set practica = '+datam.Query7.fieldbyname('practica').AsString+' where matricula = '+QuotedStr(datam.Query7.fieldbyname('matricula').AsString);
datam.Qtemp.ExecSQL;
datam.Query7.Next;
end;

while not datam.Query7.Eof do
begin

datam.Qtemp.SQL.Text := 'Update 20092 set tfinal = '+datam.Query7.fieldbyname ('tfinal').AsString+ ' where matricula = '+QuotedStr(datam.Query7.fieldbyname('matricula').AsString);
datam.Qtemp.ExecSQL; // ejecuta el query2
datam.Query7.Next;

datam.Query7.Close;
datam.Query7.Open;

 end;

 end;
  end;

Que podría haber pasado?

Saludos a todos.

Última edición por delphi.com.ar fecha: 04-03-2010 a las 22:12:23. Razón: Cambio etiqueta SQL por DELPHI
Responder Con Cita
  #2  
Antiguo 04-03-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.935
Poder: 27
delphi.com.ar Va por buen camino
Tienes que tener en cuenta que se en un UPDATE no se cumple la condición del WHERE, este no producirá ningún tipo de error. ¿Estas seguro que se están cumpliendo las condiciones?.. ¿Porqué no te copias los SQL y los ejecutas en la consola para probar?

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 04-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
// Esto no esta haciendo nada se lo comio el sql siguiente ya que usa el mismo query7
{
datam.Query7.SQL.Text:= 'Select * From 20092 Where matricula LIKE:variable';
datam.Query7.Parameters[0].Value:= '%'+ Edit1.Text +'%';
datam.Query7.Open;
}
datam.Query7.SQL.Text := ' select *, (exp + expgrup + pract1 + pract2 + pract3 + pract4 + pract5)As practica,( parcial1 + parcial2+ practica + final + trab_final) As tfinal from 20092';
datam.Query7.Filter:='matrciula Like '''+ Edit1.Text + '*''';
datam.Query7.Filtered:= True;

datam.Query7.Open;
 
datam.Query7.First;
while not datam.Query7.Eof do   // recorre la tabla en el query7
begin

datam.Qtemp.sql.Text := 'Update 20092 set practica = '+datam.Query7.fieldbyname('practica').AsString+' where matricula = '+QuotedStr(datam.Query7.fieldbyname('matricula').AsString);
datam.Qtemp.ExecSQL;

datam.Qtemp.SQL.Text := 'Update 20092 set tfinal = '+datam.Query7.fieldbyname ('tfinal').AsString+ ' where matricula = '+QuotedStr(datam.Query7.fieldbyname('matricula').AsString);
datam.Qtemp.ExecSQL; // ejecuta el query2
datam.Query7.Next;
end;  // termina el recorrido y luego la cierra y abre.

datam.Query7.Close;
datam.Query7.Open;

  end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #4  
Antiguo 04-03-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 19
aanil Va por buen camino
Hola Caral.

Copie exactamente el código que tu me presenta y no hace nada, y no produce ningún error o advertencia.

Lo raro es que antes funcionaba.

Saludos
Responder Con Cita
  #5  
Antiguo 04-03-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.935
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por aanil Ver Mensaje
Hola Caral.

Copie exactamente el código que tu me presenta y no hace nada, y no produce ningún error o advertencia.

Lo raro es que antes funcionaba.
Caral lo único que ha hecho es quitar una parte del código que a simple vista no haría la diferencia en el funcionamiento. ¿Leíste mi respuesta?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 04-03-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 19
aanil Va por buen camino
Hola Delphi, estaba viendo tu respuesta.

Creo que si que en el Where la condición es la matricula que es única para cada estudiante, te digo que anteriormente este cogido funciono, puede que yo al rehacer el proyecto haya dejado algo.

Anteriormente ese código en vez de Query7, era Query1, lo que he hecho es poner mas bonito mi proyecto lo he separado y lo he ampliado, pero en el proyecto viejo el código si me funciona.

Saludos..

Otra cosa no soy muy bueno en esto, pero no entendí lo de probar en la consola.
Responder Con Cita
  #7  
Antiguo 05-03-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.935
Poder: 27
delphi.com.ar Va por buen camino
¿Probaste dener el código en el ExecSQL, copiarte el SQL generado y ejecutarlo en la consola?.... Eso te demostrará si estas armando o no bien la instrucción.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 05-03-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por aanil Ver Mensaje
Otra cosa no soy muy bueno en esto, pero no entendí lo de probar en la consola.
Muchos motores de bases de datos proporcionan una aplicación rudimentaria (de consola o MS-DOS) para realizar consultas SQL directamente. A lo que se refiere Federico es que muchas veces nos hacemos un lío entre la sentencia SQL en sí, y el armado de ésta mediante las instrucciones propias de Delphi. Para poder discernir correctamente dónde está el problema, conviene aislar el texto de la consulta final que se manda al servidor y probarlo directamente en la utilería que proporcione tu servidor de datos.

Para aislar el texto de la consulta puedes poner un punto de corte (breakpoint) en la línea del ExecSQL y examinar la propiedad SQL.Text del Query (Ctrl+F6). Copias el valor y lo pegas en la herramienta mencionada (habría que saber qué motor usas para conocer en detalle cuál es esta herramienta).

// Saludos
Responder Con Cita
  #9  
Antiguo 04-03-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Un pequeño aporte... Podrias mejorar tu codigo de UPDATE... esto es una opción:

Código:
update 20092
set practica = (exp + expgrup + pract1 + pract2 + pract3 + pract4 + pract5),
	tfinal = (parcial1 + parcial2+ practica + final + trab_final)
where matricula = 'NUMERO_MATRICULA'
podrias hasta colocarlo en un Store Procedure y solo llamar al SP desde delphi.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
Respuesta



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 03:16:02.


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