Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-11-2005
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 09-11-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
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
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #3  
Antiguo 09-11-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
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.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.

Última edición por marcoszorrilla fecha: 09-11-2005 a las 12:44:15.
Responder Con Cita
  #4  
Antiguo 09-11-2005
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 09-11-2005
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
creo que ahi esta el error, guardas una cadena vacia, no un null
adoquery1['NOMCLI'] := Null;
Responder Con Cita
  #6  
Antiguo 10-11-2005
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 10:42:56.


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
Copyright 1996-2007 Club Delphi