Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

SQL no me admite expresiones decimales

Estas en el tema de SQL no me admite expresiones decimales en el foro de Bases de Datos General en Foros del Web. Dim N_1 as integer strSQL = "UPDATE ALUMNOS SET ALUMNOS.N1=" & N_1 CurrentDb.Execute strSQL En el código anterior si definio N_1 como integer funciona (si ...
  #1 (permalink)  
Antiguo 18/07/2005, 03:00
 
Fecha de Ingreso: julio-2005
Mensajes: 59
Antigüedad: 18 años, 9 meses
Puntos: 0
SQL no me admite expresiones decimales

Dim N_1 as integer
strSQL = "UPDATE ALUMNOS SET ALUMNOS.N1=" & N_1
CurrentDb.Execute strSQL

En el código anterior si definio N_1 como integer funciona (si es un nº decimal, lo aproxima), pero si lo defino como double, solo funciona cuando N_1 es entero, es decir que si N_1 es decimal no tengo forma de que lo admita la SQL a no ser que lo meta a presión, de esta manera:

strSQL = "UPDATE ALUMNOS SET ALUMNOS.N1=3.1"
  #2 (permalink)  
Antiguo 12/08/2005, 23:59
 
Fecha de Ingreso: abril-2005
Mensajes: 25
Antigüedad: 19 años
Puntos: 0
segun lo que posteaste creo que este es tu problema.

Antes que todo aclaremos algo, cual es la sintaxis de update?
Update <nombreTabla> Set columna1=sentencia1 [,columna2= sentencia2][,....]
[where Codicion]

Fijate.. la sintaxis sobre todo fijate en el
Código:
Set columna1=sentencia1 [,columna2
en su definicion el sql para dividir las sentencias usa una coma( fijate justo antes de columna2) y en general la configuracion de los PC en el asunto monetario es asi los miles en "." y los decimales con ",", ahora si declaras la variable como decimal por defecto usa una coma, esto provocaria un error puesto que la coma segun la sintaxis del sql es un divisor de sentencias, es decir:

columna1= 3,2
representaria 3 el numero y 2 seria el nombre de otra columna...

ahora cuando tu dices que lo metes a presión
Código:
strSQL = "UPDATE ALUMNOS SET ALUMNOS.N1=3.1"
si te fijas usas "." y no coma..

para solucionar esto yo eh utilizado una forma no muy catolica pero me funciona.. uso una funcion que me cambia las "," por puntos y de esa forma dejo claro que es un numero..

Espero que sirva la informacion..

Te dejo el codigo de la funcion, esta hecho en VB pero la idea es la que vale..


Código:
Public Function Cambiar(ByVal texto As String, ByVal Actual As String, Reemplazo As String) As String
    Dim i As Integer
    Dim Str As String
    
    Str = ""
    For i = 1 To Len(texto)
        If Asc(Mid(texto, i, 1)) = Asc(Actual) Then
            Str = Str & Reemplazo
        Else
            Str = Str & Mid(texto, i, 1)
        End If
    Next i
    Cambiar = Str
End Function
Espero haber sido de utilidad......
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:24.