Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-03-2009
DANY DANY is offline
Miembro
 
Registrado: nov 2003
Posts: 145
Poder: 21
DANY Va por buen camino
No Me Funciona el Operador / En SQL Server 2005

La duda es bien sencilla
La consulta:
Código SQL [-]
Update Stock set Cantidad = Cantidad + (3 / 6)
where CodigoDeDeposito = 1 and CodigoArticulo = 5
no incrementa la cantidad, ahora si la consulta es:
Código SQL [-]
Update Stock set Cantidad = Cantidad + (6 / 6)
where CodigoDeDeposito = 1 and CodigoArticulo = 5
es decir , si el cociente devuelve un entero, si realiza la suma.
El campo "cantidad" en cuestion es float, tambien probe pasandolo a real.
utilizo la version Express Edition para Windows Vista.
Podria tener el SQL 2005 semejante bug??.
Responder Con Cita
  #2  
Antiguo 07-03-2009
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cuando haces "(3/6)" estás dividiendo dos enteros, por lo que SQL Server intepreta que estas buscando un resultado entero, por eso te regresa 0.

Si divides "(3/6.0)" ó "(3.0/6)" ó "(3.0/6.0)", estas dividiendo uno de sus valores con decimales y entonces SQL Server interpreta que estas buscando valor con decimales y te regresa 0.500000

No se si es un error o no, pero así es como funciona desde hace mucho, o al menos desde la versión 2000 así funciona.

Puedes probarlo con todos los número que quieras, si ambos valores son enteros, te va a regresar un entero, si alguno de sus valores tiene decimales, te regresa un valor con decimales.
__________________


Última edición por ContraVeneno fecha: 07-03-2009 a las 17:42:59.
Responder Con Cita
  #3  
Antiguo 07-03-2009
DANY DANY is offline
Miembro
 
Registrado: nov 2003
Posts: 145
Poder: 21
DANY Va por buen camino
Es verdad, ya solucione mi codigo.
Muchas Gracias por la pronta respuesta, la verdad, no tenia ni idea de que trabaja asi, es raro que no respete la operacion matematica interpretando que se busca un entero.
una pregunta, y es solo curiosidad, eso esta establecido en el standart SQL?.
No recuerdo haber tenido ese problema en interbase, en ese caso, que curioso lo de los muchachos de M$. que no respetan el standart.
Saludos.
Responder Con Cita
  #4  
Antiguo 07-03-2009
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por ContraVeneno Ver Mensaje
...No se si es un error o no, pero así es como funciona desde hace mucho, o al menos desde la versión 2000 así funciona...


10 repetidores caracteres
__________________

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
Funciona. Pero estará bién?. Time con SQL Server 2005 Carmelo Cash SQL 3 19-01-2009 18:32:50
conectar delphi 2005 con mssql server 2005 tebre Conexión con bases de datos 0 26-11-2008 19:16:47
ms sql server 2005 Gbyte MS SQL Server 1 19-05-2008 23:52:51
Exportar database sql server 2005 a sql server 2000 ErenioDhG Conexión con bases de datos 1 29-08-2006 15:42:46
Duda sobre Sql server 2005 y sql server 2005 ErenioDhG SQL 1 25-08-2006 01:41:14


La franja horaria es GMT +2. Ahora son las 07:14: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
Copyright 1996-2007 Club Delphi