Foros del Web » Programando para Internet » ASP Clásico »

valores nulos en access y ASP

Estas en el tema de valores nulos en access y ASP en el foro de ASP Clásico en Foros del Web. como puedo insertar en el valor de un campo de texto un valor nulo? recojo un valor (entre otros) de una caja de texto en ...
  #1 (permalink)  
Antiguo 05/11/2003, 16:06
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 6 meses
Puntos: 2
valores nulos en access y ASP

como puedo insertar en el valor de un campo de texto un valor nulo?

recojo un valor (entre otros) de una caja de texto en la q el usuario puede introducir un valor o dejarlo en blanco, la contrucción de la sentencia en SQL de INSERT tiene to2 los campos, incluido el q en este caso se pasaria en blanco

si no inserto nada en la caja de texto "" me da un error de "cannot be a zero-length string. " cuando este no es un campo olbigatorio

alguna otra opcion ad+ d insertar un cero o similar o reconsctruir la sentencia de SQL?

se puede asignar NULL o lo tomara como cadena de caracteres?

__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
  #2 (permalink)  
Antiguo 05/11/2003, 16:22
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
No he encontrado nada mas que condicionar si llegan vacios esa variable es nula y dependiendo de si la variable es nula ejecuta la instrucción, el problema es cuando hay muchos campos...

variable= trim(request.form("caja_de_texto"))

If variable = "" Then
variable= null
End If

If isNull(variable) Then
ObjConn.Execute("INSERT INTO tabla(campo1) VALUES("&variable&")")
Else
ObjConn.Execute("INSERT INTO tabla(campo1) VALUES('"&variable&"')")
End If



Otra que podría ser es que quitaras la propiedad de "no permitir longitud cero" en access, hagas tu inserción normalmente y después de hacerla actualices todos los campos que tengan '' y les pongas NULL


Sub actualiza(tabla, campos)
arrCampos=split(campos, ",")
For i=0 to uBound(arrcampos)
ObjConn.Execute("UPDATE "&tabla&" SET " & arrCampo(i) & "=NULL WHERE " & arrcampo(i) & "='' ")
Next
End Sub

ObjConn.Execute("INSERT....bla, bla, bla")

actualiza "mi_tabla", "campo1,campo2,campoN"

Se me acaba de ocurrir no lo he probado...

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 05/11/2003, 16:24
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
los campos tienen dos propiedades al respecto:

- Requerido, si/no, que aparentemente lo tenés en "no"
- Permitir longitud 0, si/no, que aparentemente lo tenés en "no"

cambiá este último por "si" y asunto solucionado
__________________
...___...
  #4 (permalink)  
Antiguo 05/11/2003, 16:27
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Cita:
Otra que podría ser es que quitaras la propiedad de "no permitir longitud cero" en access, hagas tu inserción normalmente y después de hacerla actualices todos los campos que tengan '' y les pongas NULL

Pucha! debería existir una opción que te diga "alguien ya se encuentra respondiendo este mensaje" cuando le das a "responder"


  #5 (permalink)  
Antiguo 05/11/2003, 16:28
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 06/11/2003, 15:00
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 6 meses
Puntos: 2
gasiasss

gracias a to2 los 2

probé con asignando NULL pero me seguia diciendo q no permitia cadena de longitud cero

finalmente opte por reconstruir la sentencia INSERT almacenando en arrays los nombres de los campos a insertar y sus correspodientes valores para luego con un bucle agregar a la sentencia SQL solo aquellos q no fuesen nulos

hay alguna manera de cambia la propiedad de un campo en access para toda una tabla o varias tablas

como x ejemplo permitir longitud cero?
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
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 21:50.