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

Error en fechas sql server

Estas en el tema de Error en fechas sql server en el foro de ASP Clásico en Foros del Web. Buenos dias, Gracia e antemano. no se si esta duda es de asp o de sql, creo que de aqui. La cuestion es que tengo ...
  #1 (permalink)  
Antiguo 29/11/2010, 03:01
 
Fecha de Ingreso: mayo-2008
Mensajes: 77
Antigüedad: 16 años
Puntos: 0
Error en fechas sql server

Buenos dias, Gracia e antemano.
no se si esta duda es de asp o de sql, creo que de aqui.


La cuestion es que tengo una BD sql server, cada vez que la fecha se queda vacia me pone la 1/1/1900 por defecto, para evitar esto, igualo la fecha vacia a null pero sigue igualando a 1/1/1900, ignorando el null, ¿Alguna idea?

Aqui esta el codigo:

Código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/con_bd.asp" -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<%
   familias = Request.Form("familias") 
   familias_ant= Request.Form("familias_ant") 
   nombre = Request.Form("nombre")
   apellidos = Request.Form("apellidos")
   dni_profe = Request.Form("dni_profe")
   direccion = Request.Form("direccion")
   cp = Request.Form("cp")
   localidad = Request.Form("localidad")
   provincia = Request.Form("provincia")
   telefono = Request.Form("telefono")
   movil = Request.Form("movil")
   mail = Request.Form("mail")
   observac = Request.Form("observac")
   fecha_nacim = Request.Form("fecha_nacim")
   titulac_acad = Request.Form("titulac_acad")
   formac_compl = Request.Form("formac_compl")
   experiencia = Request.Form("experiencia")
   habilidades = Request.Form("habilidades")
   fecha_incorp = Request.Form("fecha_incorp")
   puesto = Request.Form("puesto")
   
   
   

   
   
' si las fehas estan vacias colca el 1/1/1900
  if  fecha_nacim = "" then

  	fecha_nacim = null
  end if
  if  fecha_incorp = "" then
  	fecha_incorp = null
  end if
  

  
%>
</head>

<body>
<%

on error resume next
'Response.Write(experiencia)

   Set Con2 = Server.CreateObject("ADODB.Connection")
   con2.Open MM_con_bdsgca_STRING
   If (nombre = "" or dni_profe="" or apellidos="") then
     response.Redirect("ok.htm")
   else
     sql2="UPDATE profesores SET nombre='"&nombre&"',apellidos='"&apellidos&"',familias='"&familias&"',fecha_nacim='"&fecha_nacim&"',titulac_acad='"&titulac_acad&"',formac_compl='"&formac_compl&"',experiencia='"&experiencia&"',fecha_incorp='"&fecha_incorp&"',puesto='"&puesto&"',direccion='"&direccion&"',cp='"&cp&"',localidad='"&localidad&"',provincia='"&provincia&"',telefono='"&telefono&"',movil='"&movil&"',mail='"&mail&"',observac='"&observac&"' WHERE dni_profe='"&dni_profe&"'"
     set rs=con2.execute(sql2)
	 
	 
	 if Err<>0 then
 			response.Write(Err.Description)
			response.Write("La consulta es =  ")
		    Err.Number  = 0
			response.Write(sql2)
			
	end if
	 
	 
	 if NOT familias=familias_ant then
	 	
		Set Con1 = Server.CreateObject("ADODB.Connection")
	    con1.Open MM_con_bdsgca_STRING
		sql1="DELETE FROM imparte WHERE cod_prof_imparte='"&dni_profe&"'"
		set rs= Con1.execute(sql1)
		familias=trim(familias)
		fam=split(familias,", ")
		dim i
		For i=LBound(fam) to UBound(fam)
	 		'aqui realizamos la consulta la bd sobre el codigo segun la palabra
	    	 set objconexion = server.CreateObject("ADODB.Recordset")
			 objconexion.ActiveConnection = MM_con_bdsgca_STRING 'conectamos el recordset
			 objconexion.Source= "select cod_familia from familias WHERE nombre = '"&fam(i)&"' "
	    	 objconexion.open()
			 variable = objconexion.Fields.Item("cod_familia").value
	    	 objconexion.close
			 set objconexion = nothing
		 
			 Set Conexion = Server.CreateObject("ADODB.Connection")
		     conexion.Open MM_con_bdsgca_STRING
			'insertamos dandole los valores de las variables
		     insercion="INSERT INTO imparte (cod_curso_imparte,cod_prof_imparte) VALUES ("&variable&",'"&dni_profe&"')"
		     set rs=conexion.execute(insercion)
		 next
	 end if
	' response.Redirect("SubeCurriculum.asp?dni="&dni_profe&"&p=1")
	 'response.write(habilidades)
	 
   response.Write(fecha_ini)
   response.Write(fecha_fin)

   end if
   con2.close	 


%>
  #2 (permalink)  
Antiguo 29/11/2010, 07:58
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Respuesta: Error en fechas sql server

No igualas a null, igual a 'null' que es diferente tipo de dato y al no poderlo convertir a fecha te inicializa el campo.

Saludos
  #3 (permalink)  
Antiguo 29/11/2010, 11:19
 
Fecha de Ingreso: mayo-2008
Mensajes: 77
Antigüedad: 16 años
Puntos: 0
Respuesta: Error en fechas sql server

Gracias por la respuesta, pero hay alguna manera de ponga el 1/1/1900, alguna manera de dejarlo vacio?
  #4 (permalink)  
Antiguo 29/11/2010, 12:06
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Respuesta: Error en fechas sql server

Cita:
Iniciado por loverpiu Ver Mensaje
Gracias por la respuesta, pero hay alguna manera de ponga el 1/1/1900, alguna manera de dejarlo vacio?
No entendí tu pregunta, pero me imagino que lo que quieres es almacenar en tu base de datos el valor null en lugar de este valor por defecto?

Si es así ve a la vista de diseño de tu tabla en tu administrador de SQL, seguramente tiene este valor definido como default y no acepta nulos, tienes que cambiar estas dos cosas.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 29/11/2010, 12:25
 
Fecha de Ingreso: mayo-2008
Mensajes: 77
Antigüedad: 16 años
Puntos: 0
Respuesta: Error en fechas sql server

Gracias a todos por la ayuda, lo explicare otra vez a ver si me explico mejor:

Tengo un registro que es fecha_nacimiento, el cual no siempre conozco, entonces el usuario al rellenar los datos este lo deja en blanco, pues bien, la BD es SQL server y siempre que esta vacio me coloca 1/1/1900 (Que es el comienzo del datetime),
en fin pensaba que igualando el campo a null, lo dejaria en blanco, (Estaba equivocado).

He comprbado la configuración de la BD y es tipo de campo Datetime, y esta activado permitir valores nulos.

Mi pregunta es ¿Hay alguna manera de conseguir que dicho campo quede en blanco?

Gracias una vez mas.

PD
A y no tiene ninguna mascara claro.

Última edición por loverpiu; 29/11/2010 a las 12:26 Razón: Añadida PD
  #6 (permalink)  
Antiguo 29/11/2010, 15:25
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Respuesta: Error en fechas sql server

Cita:
Iniciado por Myakire Ver Mensaje
No igualas a null, igual a 'null' que es diferente tipo de dato y al no poderlo convertir a fecha te inicializa el campo.

Saludos
Modifica lo que te comenté, en tu update no asignes 'null' iguala a null (sin apóstrofes)
  #7 (permalink)  
Antiguo 01/12/2010, 00:41
 
Fecha de Ingreso: mayo-2008
Mensajes: 77
Antigüedad: 16 años
Puntos: 0
Respuesta: Error en fechas sql server

Gracias por la ayuda, si lo entendi bien seria quitar los apstrofes de la sentencia SQL; pero al hacerlo de dice

Sintaxis incorrecta cerca de ','


Si lo he entendido bien claro, por que la condicion y la asignacion en el if es correcta?
  #8 (permalink)  
Antiguo 02/12/2010, 00:32
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Respuesta: Error en fechas sql server

Haz un response.write de tu consulta seguido de un response.end y fijate la salida que te genera, uno o mas de valores deben ser incorrectos, si no das con el error pega la salida de la sentencia aqui mismo especificando que tipos de datos son tus campos.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway

Etiquetas: fechas, server, sql
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 09:12.