Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/09/2007, 04:35
tammander
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 3 meses
Puntos: 7
Re: Error de Microsoft VBScript en tiempo de ejecución error '800a000d'

El error que te da es que no coinciden los tipos. Es decir, que o bien la variable Precio es nulo o esta vacio, o bien la variable Unidades le pasa lo mismo; o ambas

Para solucionar eso puedes hacerlo de tres formas:

- Modificando la estructura de la base de datos y asignando a los campos implicados valores por defecto a cero.
- Modificando la sentencia SQL para que o bien te devuelva los datos o te devuelva cero en caso de que sean nulos.
- interponer una funcion que haga lo mismo.

Yo uso esta funcion para comprobar si los datos vienen vacios o nulos

Código:
' Chequea si la variable esta vacia (sea del tipo que sea)
Public Function IsBlank(byref TempVar)
    dim tmpType
    IsBlank = False
    select case VarType(TempVar)
        case 0, 1 '--- Empty & Null
            IsBlank = True
        case 8 '--- String
            if Len(TempVar) = 0 then
                IsBlank = True
            end if
        case 9 '--- Object
            tmpType = TypeName(TempVar)
            If (tmpType = "Nothing") Or (tmpType = "Empty") Then
                IsBlank = True
            End If
        case 8192, 8204, 8209 '--- Array
            if UBound(TempVar) = -1 then
                IsBlank = True
            end if
    end select
End Function
con lo que esto:

<%=FormatNumber(Precio * Unidades, 0) %>

quedaria asi:

<%
if isBlank(Precio) then Precio = 0
if isBlank(Unidades) then Unidades = 0

FormatNumber(Precio * Unidades, 0)
%>

Para las otras opciones, hay respuestas en el foro




Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -