![]() |
boolean nulo
Hola a todos,
Necesito saber que registros de una tabla tienen un valor boolean nulo, y no soy capaz de coinstuir el sql necesario. Utilizo paradox. Ya se que se habria resuelto poniendo un valor false al hacer el post, pero ahora ya es tarde. He probado con campo="", con campo<>True, poniendo un param a null, y nada de nada, con los dos primeros simplemente no selecciona ningun registro, y poniendo el param = null da un error. Ya que estamos, alguien sabe como establecer un valor por defecto en un campo de una tabla POR CODIGO (como lo de Default Value del Database DeskTop). Saludos, y gracias a todos |
Prueba a meter en la sentecia sql directamente where campo = null en vez utilizar un parámetro para eso.
Para establecer un valor por defecto lo puedes hacer mediante la sentencia de creacion de tabla. Si ya la tienes creada entonces la sentencia sería ALTER TABLE NombreDeTabla ALTER NombreDelCampo TYPE BOOLEAN DEFAULT False NOT NULL (es sql estándar, supongo que funciona con paradox). Asi evitas que pueda volver a ponerse nulo. |
Gracias Voutarks, pero no se soluciona nada.
Lo que tu comentas es lo logico, y lo que yo pensaba, pero paradox no piensa igual. Cita:
Cita:
Invalid use of keyword. Token: ALTER La solucion de poder alterar la tabla es la que más me interesa, ya que elimina por completo mi problema, y me sirve para futuras actualizaciones. Voy a seguir buscando, si encuentro la forma lo posteo aqui mismo. (Si alguien sabe como hacerlo se lo agradeceria) Mientras tanto, muchas gracias a todos. |
Hola a todos,
Esto es lo que he encontrado y funciona, aunque no resuelve el problema: Código:
query1.sql.add('ALTER TABLE mitabla.db"'); He llegado a estas conclusiones haciendo pruebas, y consultando este enlace: http://www.latiumsoftware.com/es/pascal/0009.php Pienso que debe existir alguna forma de establecer el NOT NULL y DEFAULT, pero estoy totalmente perdido..... voy a probar con los dbi, a ver si sale algo. Gracias a todos |
Pues no se si paradox lo soporta o no porque no lo he manejado, pero los estándares del SQL99 definen las palabras NULL y NOT NULL como restricciones sobre los campos en la instrucción CREATE TABLE.
Además establece que se puede poner a ALTER TABLE las palabras SET DEFAULT y DROP DEFAULT para establecer o quitar valores por defecto. (lo acabo de consultar, asi que lo que puese antes no era correcto, esto si) Pero bueno, no se hasta que punto Paradox se acerca a los estándares. |
La verificación de si un campo es null no se hace con el operador de igualdad sino con el operador is:
where campo is null Y sí, Paradox, maneja valores null y hasta donde entiendo el estandar sql que mencionan especifica que la comparación se hace con is en lugar de =. // Saludos |
Tienes razón, ha sido un lapsus
|
Cierto, muchas gracias.
Ahora puedo hacer un update que me permite cambiar los campos null por true/false. Segui buscando, y encontre la forma de establecer valores por defecto y NOT NULL en tablas paradox. Para ello se utiliza DbiDorestructure, de la api del BDE. En los ejemplos de la ayuda del delphi esta la solucion. Gracias a los dos por vuestra ayuda. |
La franja horaria es GMT +2. Ahora son las 23:18:41. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi