FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Asignar valor nulo a un entero
Hola a todos
Soy nuevo en el foro y nuevo con el delphi (de hecho soy incluso nuevo como programador) por lo que todavia hay cosas que no tengo muy claras. Os explico. Es tan sencillo como un gestor de citas. Cada dia se van a programar unas citas para unas horas y estoy haciendo la funcion para que se puedan eliminar citas. Os muestro el código: El campo QIntervaloUSUARIO es de tipo entero y recoge el numero del usuario de tenia concertada la cita. Intento ponerlo a null pero me da un error de tipo: "could not convert variant of type (null) into type (integer)". Por tanto, supongo que a los enteros no se les puede asignar el valor null (no, al menos, "a pelo"). Si le asigno un valor numérico (por ejemplo, cero) lo coge perfectamente. He intentado poner QIntervaloUSUARIO.AsString := '' pero, aunque no da fallo, no cambia nada. Sé que es una chorrada de problema, pero le doy vueltas y no sé como hacerlo. Gracias a los que os molesteis en respondedme y un saludo Última edición por marcoszorrilla fecha: 27-08-2007 a las 12:54:59. Razón: Etiquetas Delphi |
#2
|
||||
|
||||
Con el código que indicas no eliminas la cita, solamente la vacías, tendrías que aplicar:
Según releo, quizás lo que quieres sea: Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
Última edición por marcoszorrilla fecha: 27-08-2007 a las 13:03:20. |
#3
|
|||
|
|||
Bueno, tienes razón. No me expliqué bien. No quiero eliminar el registro en sí, quiero dejarlo vacío, visible de que ese día a esa hora no hay ninguna cita concertada.
EDITO: No se me ocurrió mirar las propiedades del Query. He probado tanto con .Clear como con .IsNull (no sé cómo no se me ocurrió antes) y me pasa algo que paso a explicar. Código Delphi (todavía no sé cómo lo formateais :P) showmessage(DMCitasCalendario.QIntervaloUSUARIO.AsString); DMCitasCalendario.QIntervaloUSUARIO.Clear; showmessage(DMCitasCalendario.QIntervaloUSUARIO.AsString); DMCitasCalendario.QIntervaloUSUARIO.IsNull; showmessage(DMCitasCalendario.QIntervaloUSUARIO.AsString); Así he visto cómo tanto con .Clear como con .IsNull borra el entero que había antes, pero no sé porqué no lo guarda. He mirado la base de datos (Firebird) y este campo admite nulos, no es ni clave única ni primaria ni nada, por lo que no sé qué problema hay. Las soluciones que me diste, Marcos, funcionan, pero no lo guarda (y cuando le asigno a pelo .Value=3000 sí lo coge). Si al menos pudieras/pudiérais orientarme un poco en qué tipo de problema puedo tener, os lo agradecería. Y si necesitais mas información no teneis más que pedirlo. Gracias de nuevo Última edición por Shikanda fecha: 27-08-2007 a las 14:15:26. |
#4
|
|||
|
|||
Por cierto, he probado con
DMCitasCalendario.QIntervalo.Post; DMCitasCalendario.QIntervalo.UpdateSQL; DMCitasCalendario.QIntervalo.RefreshSQL; Y le da lo mismo una que otra que las 3 |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
coger valor entero de un decimal | jmlifi | Varios | 1 | 25-11-2005 17:12:47 |
Valor nulo en un string | ElDioni | Conexión con bases de datos | 5 | 10-11-2005 09:29:57 |
Valor Nulo o en blanco y nil | vtdeleon | OOP | 1 | 25-11-2004 05:41:50 |
Campo con valor nulo | fjcg02 | Conexión con bases de datos | 4 | 10-11-2004 08:55:07 |
Valor nulo | pache | OOP | 3 | 19-06-2003 08:39:13 |
|