![]() |
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 :) |
|
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 :) |
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 :confused: |
| La franja horaria es GMT +2. Ahora son las 21:05:35. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi