Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Insertar Datos Null en un Campo Float desde vb 6.0 en BD Mysql 5.0

Estas en el tema de Insertar Datos Null en un Campo Float desde vb 6.0 en BD Mysql 5.0 en el foro de Visual Basic clásico en Foros del Web. Hola Maestro espero que me ayude con esta inquietud estoy desarrollando un siste ma de notas para un colegio y estoy en el reporte le ...
  #1 (permalink)  
Antiguo 17/09/2008, 09:22
 
Fecha de Ingreso: septiembre-2008
Mensajes: 17
Antigüedad: 15 años, 7 meses
Puntos: 0
Insertar Datos Null en un Campo Float desde vb 6.0 en BD Mysql 5.0

Hola Maestro espero que me ayude con esta inquietud estoy desarrollando un siste ma de notas para un colegio y estoy en el reporte le explico tengo un tabla notas donde guardo todas las notas de lso alumnos matriculados en el año actual
pero para el reporte guardo las notas de un grado,seccion,nivel,numaño de todos los alumnos respectivamente.
al hacer una consulta ala tabla notas con los parametros : grado,seccion,nivel,numaño y me filtra todos los alumnos de un grado y seccion
y para hacer el reporte debo grabar todos los alumnos de la consulta 1 a un tabla temporal y el codigo es el siguiente:

SQL_IdAlumnoIdCurso_Nivel_Grado_Seccion_NumAño = " SELECT notas.IdAlumno, alumno.ApellidosNombres, matricula.Nivel, matricula.Grado, matricula.Seccion, notas.IdCurso, notas.B1C1, notas.B1C2, notas.B1C3, notas.B1C4, notas.B2C1, notas.B2C2, notas.B2C3, notas.B2C4, notas.B3C1, notas.B3C2, notas.B3C3, notas.B3C4, notas.B4C1, notas.B4C2, notas.B4C3, notas.B4C4, notas.IJ, notas.II, notas.TJ, notas.TI, matricula.NumAño FROM notas INNER JOIN curso ON (notas.IdCurso = curso.IdCurso) INNER JOIN alumno ON (notas.IdAlumno = alumno.IdAlumno) INNER JOIN matricula ON (matricula.IdAlumno = alumno.IdAlumno) INNER JOIN añoescolar ON (matricula.NumAño = añoescolar.NumAño) WHERE matricula.Nivel = '" & Nivel & "' AND matricula.Grado = '" & Grado & "' AND matricula.Seccion = '" & Seccion & "' AND matricula.NumAño = '" & NumAño & "'"
rs2.Open SQL_IdAlumnoIdCurso_Nivel_Grado_Seccion_NumAño, cn


If Not (rs2.EOF And rs2.BOF) Then
Do While Not rs2.EOF
IdAlumno = IIf(IsNull(rs2!IdAlumno), "", rs2!IdAlumno)
ApellidosNombres = IIf(IsNull(rs2!ApellidosNombres), "", rs2!ApellidosNombres)
IdCurso = IIf(IsNull(rs2!IdCurso), "", rs2!IdCurso)
Grado = IIf(IsNull(rs2!Grado), "", rs2!Grado)
Seccion = IIf(IsNull(rs2!Seccion), "", rs2!Seccion)
Nivel = IIf(IsNull(rs2!Nivel), "", rs2!Nivel)
B1C1 = IIf(IsNull(rs2!B1C1), "l", rs2!B1C1)
B1C2 = IIf(IsNull(rs2!B1C2), "''", rs2!B1C2)
B1C3 = IIf(IsNull(rs2!B1C3), "''", rs2!B1C3)
B1C4 = IIf(IsNull(rs2!B1C4), "''", rs2!B1C4)

B2C1 = IIf(IsNull(rs2!B2C1), "''", rs2!B2C1)
B2C2 = IIf(IsNull(rs2!B2C2), "''", rs2!B2C2)
B2C3 = IIf(IsNull(rs2!B2C3), "''", rs2!B2C3)
B2C4 = IIf(IsNull(rs2!B2C4), "''", rs2!B2C4)

B3C1 = IIf(IsNull(rs2!B3C1), "''", rs2!B3C1)
B3C2 = IIf(IsNull(rs2!B3C2), "''", rs2!B3C2)
B3C3 = IIf(IsNull(rs2!B3C3), "''", rs2!B3C3)
B3C4 = IIf(IsNull(rs2!B3C4), "''", rs2!B3C4)

B4C1 = IIf(IsNull(rs2!B4C1), "''", rs2!B4C1)
B4C2 = IIf(IsNull(rs2!B4C2), "''", rs2!B4C2)
B4C3 = IIf(IsNull(rs2!B4C3), "''", rs2!B4C3)
B4C4 = IIf(IsNull(rs2!B4C4), "''", rs2!B4C4)

cn.Execute "insert into Temporal " _
& " (Norden ,IdAlumno,ApellidosNombres,Grado,Seccion,Nivel,Mat 1_B1C1, Mat1_B1C2, Mat1_B1C3, Mat1_B1C4, Mat1_B2C1, Mat1_B2C2, Mat1_B2C3, Mat1_B2C4, Mat1_B3C1, Mat1_B3C2, Mat1_B3C3, Mat1_B3C4, Mat1_B4C1, Mat1_B4C2, Mat1_B4C3, Mat1_B4C4 ,Cola)VALUES" _
& " ('" & Cont & "','" & IdAlumno & "','" & ApellidosNombres & "','" & Grado & "','" & Seccion & "','" & Nivel & "','','" & B1C2 & "','" & B1C3 & "','" & B1C4 & "','" & B2C1 & "','" & B2C2 & "','" & B2C3 & "','" & B2C4 & "','" & B3C1 & "','" & B3C2 & "','" & B3C3 & "','" & B3C4 & "','" & B4C1 & "','" & B4C2 & "','" & B4C3 & "','" & B4C4 & "','" & IdCola & "')"

el problema es el siguiente :
B1C1 = IIf(IsNull(rs2!B1C1), "", rs2!B1C1)
al momento de insertar el campo B1C1 ="" en la tabla temporal me graba 0
y deseo que grabe null
probe de la siguente manera :
B1C1 = IIf(IsNull(rs2!B1C1), NULL, rs2!B1C1)
y lo mismo
gracias de antemano
  #2 (permalink)  
Antiguo 17/09/2008, 09:42
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Insertar Datos Null en un Campo Float desde vb 6.0 en BD Mysql 5.0

Me temo que MySQL no acepte NULL para campos de tipo float. Prueba así:
Código vb:
Ver original
  1. B1C1 = IIf(IsNull(rs2!B1C1), "NULL", rs2!B1C1)
¿No es más fácil guardando 0?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 18/09/2008, 15:34
 
Fecha de Ingreso: septiembre-2008
Mensajes: 17
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Insertar Datos Null en un Campo Float desde vb 6.0 en BD Mysql 5.0

Gracias por responder tan pronto ..!!
le explicare mas detallado:
un bimestre se avalua varios cursos y un curso tiene 4 capacidad
por eso trabajo con B1C1,B1C2,B1C3,B1C4 => de un curso de un bimestre
y cada capacidad tiene una nota pero hay maestros que evaluan solo 2,3 o las 4 capacidades y si grabo " 0 " el sistema estaria transgiversando las capacidades evaluadas por le maestro por eso debo grabar NULL.

Por que al momento de sacarle el promedio de las 4 capacidades consideraria el
" 0 " de una capacidad evaluada por el maestro eso estaria mal por eso prefiero grabar NULL para preguntar por cada capacidad si es nulo y que me saque el promedio de las que contiene valores numericos....!!
lo intentare grabar con tu ejemplo que me enviaste gracias una vez mas ....!!
  #4 (permalink)  
Antiguo 18/09/2008, 15:39
Avatar de cuchurrumin  
Fecha de Ingreso: septiembre-2008
Mensajes: 44
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Insertar Datos Null en un Campo Float desde vb 6.0 en BD Mysql 5.0

uhm porque no usas -1 y cuando saques el promedio que quieres utilizas solo las que el valor sea mayor o igual a 0, ahora en mysql si al crear tu tabla tu no le pusiste un valor por default
MySQL automaticamente le pone Null ( lo se porque asi lo hago y tengo la version 5 de MySQL)
  #5 (permalink)  
Antiguo 18/09/2008, 15:40
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Insertar Datos Null en un Campo Float desde vb 6.0 en BD Mysql 5.0

Pero también, en vez de preguntar si es "NULL" puedes preguntar si es "0" y no incluirlo en el promedio .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 19/09/2008, 09:22
Avatar de cuchurrumin  
Fecha de Ingreso: septiembre-2008
Mensajes: 44
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Insertar Datos Null en un Campo Float desde vb 6.0 en BD Mysql 5.0

Si ps david grandote las soluciones ahi estan y son funcionales, noma falta q el amigo las haga...nosotros cumplimos con la intecion de ayudar
  #7 (permalink)  
Antiguo 22/09/2008, 09:45
 
Fecha de Ingreso: septiembre-2008
Mensajes: 17
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Insertar Datos Null en un Campo Float desde vb 6.0 en BD Mysql 5.0

una vez ma gracias por reponder hasta ahi esta bien la logica de grabar -1 les cuento que yo tambien hice lo mismo con el numero 21 pero en el reporte me aparece el numero 21 igual aparecera el numero -1 en le reporte.
en conclusion como haria para para que no visualice los numeros -1 ya grabados en mi tabla temporal donde alli estan los datos de la libreta de notas y que genero mi reporte me aparece -1 ............! deberia aparecer vacio por que se evaluo
  #8 (permalink)  
Antiguo 24/09/2008, 14:15
 
Fecha de Ingreso: septiembre-2008
Mensajes: 17
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Insertar Datos Null en un Campo Float desde vb 6.0 en BD Mysql 5.0

Hola Amigos Foros del Web ya encontre como insertar Dato Null en un campo Float en mysql solo no enviar el campo nada mas .!!!

el problemita estaba en al hacer una consulta de una tabla me devolvia los campos como son : B1C1,B1C2,B1C3,B1C4 vacios o = ""
y al momento de grabarlos en mi tabla Temporal en un campo float me guardaban 0 solo tenia que no enviar los campo que sean = " " por ejemplo :
If B1C1 = "" And B1C2 = "" And B1C3 = "" Then ' Solo Grabo B1C4 y B1C1,B1C2,B1C3 sigue con Null
cn.Execute "insert into Temporal " _
& " (Norden ,IdAlumno,ApellidosNombres,Grado,Seccion,Nivel, Mat1_B1C4, Cola)VALUES" _
& " ('" & Norden & "','" & IdAlumno & "','" & ApellidosNombres & "','" & Grado & "','" & Seccion & "','" & Nivel & "','" & B1C4 & "','" & IdCola & "')"

Gracias por todo amigo por haberme respondido ya estaremos en contacto una vez mas gracias ya estaremos en Contacto....!!!
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 02:08.