Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Valor nulo en un string (https://www.clubdelphi.com/foros/showthread.php?t=26984)

ElDioni 09-11-2005 12:30:04

Valor nulo en un string
 
Hola
Estoy trabajando con delphi 7 y con access 97, bien mi problema es el siguiente, la bbdd que uso ya contenia datos por lo que mi programa trabaja sobre esos datos existentes, todo funciona a la perfeccion, guarda, modifica, borra, todo bien pero el problema me lo encuentro cuando entro dentro de la bbdd en access y hago un filtro excluyendo los registros de un campo que esten vacios, por lo visto el valor nulo de delphi para los strings ('') no es igual que el valor nulo de access por lo que me excluye todos los que estan vacios menos los que han sido modificados en mi programa de delphi, alguien sabe como podría solucionar este problema ya que el administrador necesita acceder a la bbdd desde access y hacer filtros en ella.

vtdeleon 09-11-2005 12:40:00

Saludos

Como estas accediendo a la BD (Query o Table)??

Lo mejor seria usar Query
Código SQL [-]
select campo from tabla
where campo is null

marcoszorrilla 09-11-2005 12:41:38

Access tiene una propiedad en sus campos textos "permitir longitud 0" (Allow Zero length), por defecto está en no, por lo que para modificarlo en Delphi, al no permitirte no escribir nada, supongo que insertas un espacio.

Por eso los de Access no modificados nunca no tienen nada y son nulos y los modificados desde Delphi sí.

Una solución puede ser cambiar dicha propiedad.

Otra modificar la consulta y en vez de Isnull, buscar Len(Campo)>1 para los no nulos o Len(Trim(Campo)) = 0 para los nulos.

Un Saludo.

ElDioni 09-11-2005 13:05:36

Aclaro un poco todo
 
Estoy utilizando un adoquery, en access me permite longitud cero , yo no guardo espacios en blanco, lo que guardo es comilla simple, comilla simple seguido, o sea un null string ('') para guardarlo utilizo lo siguiente

adoquery1.fieldbyname('NOMCLI').asstring:=txtcliente.text;

si el texto esta vacio me guarda vacio, pero debe ser que el valor null de delphi no es como el valor null de access. alguien sabria ayudarme.
gracias por adelantado

luisgutierrezb 09-11-2005 17:22:10

creo que ahi esta el error, guardas una cadena vacia, no un null
adoquery1['NOMCLI'] := Null;

ElDioni 10-11-2005 09:29:57

Siento responder ahora
 
Gracias a todos por vuestra ayuda, efectivamente las comillas simples son consideradas un null string en delphi, pero por lo visto siguen siendo un string asi que la solución es meter null
de nuevo gracias


La franja horaria es GMT +2. Ahora son las 01:06:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi