Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problema de Sintaxis???? (https://www.clubdelphi.com/foros/showthread.php?t=28669)

Jvilomar 28-12-2005 13:34:03

Problema de Sintaxis????
 
Hola... y feliz navidad a todos....

Bueno... estoy teniendo un pequeño problea que estoy seguro que anteriormente podia solucionarlo sin ningun inconveniente.. o bueno eso creo.

Veran utilizo SQL server 2000 y lo que quiero es actualizar unos valores de una tabla. por ejemplo

Código SQL [-]
  
      update tPrueba
      set uno=5,
        dos = (uno * 18.00) /100,
        tres= uno + dos
      where idControl =1

el asunto es que deberia de darme un resultado mas o menos parecido a este

Uno = 5
Dos = 0.9
tres = 5.9

pero para mi sorpresa en la tabla solo aparece el valor del campo Uno y los otros dos valores en cero, eso en caso de que sea la primera vez que actualizo la fila. ahora si repito el query nuevamente entonces me da unos valores que no se parecen en nada a los que deseo. alguien puede decirme que estoy haciendo mal???

Gracias Anticipadas...

delphi.com.ar 28-12-2005 13:48:20

Cita:

Empezado por Jvilomar
pero para mi sorpresa en la tabla solo aparece el valor del campo Uno y los otros dos valores en cero, eso en caso de que sea la primera vez que actualizo la fila. ahora si repito el query nuevamente entonces me da unos valores que no se parecen en nada a los que deseo. alguien puede decirme que estoy haciendo mal???

Solo leyendo tu comentario, es evidente que esta tomando el valor del campo antes de ser modificado, y esto es asi. Cuando te refieres a el valor de un campo en un update, este será el valor que tenía antes de que se ejecute el update.
Una posible solución a tu problema "a la Sql Server", podría ser:
Código SQL [-]
declare  
  @tmpUno Int /* O el tipo de datos de la columna Uno */,
  @tmpDos Int /* O el tipo de datos de la columna Dos */
begin
  update tPrueba
     set @tmpUno = uno =5,
         @tmpDos = dos = (@tmpUno * 18.00) /100,
         tres= @tmpUno + @tmpDos
end;

Saludos!

Jvilomar 28-12-2005 18:14:35

Gracias por responder mi hermano.. se que hay muchas cosas que aprender todabia... y te aseguro que ustedes nos ayudan mucho sobre todo a ingeniarnolas con los problemas :D


Gracias nueva mente.....


La franja horaria es GMT +2. Ahora son las 20:09:08.

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