ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Saber se o campo é nulo em uma tabela - [Resolvido]
Ir à página 1, 2  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Dalvane
Novato
Novato


Registrado: Terça-Feira, 15 de Mai de 2012
Mensagens: 25

MensagemEnviada: Qua Ago 22, 2012 5:43 pm    Assunto: Saber se o campo é nulo em uma tabela - [Resolvido] Responder com Citação

Boa tarde!

Estou fazendo a leitura da estrutura de uma banco de dados, consigo pegar as tabelas de determinado banco, as colunas de cada tabela e o tipo de cada tabela.

Tem como eu verificar se as colunas são nulas ou não!
Alguém tem idéia de como verificar isso?

Obrigado!


Editado pela última vez por Dalvane em Sáb Ago 25, 2012 1:36 pm, num total de 2 vezes
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
maizena
Colaborador
Colaborador


Registrado: Terça-Feira, 20 de Março de 2012
Mensagens: 1497
Localização: Laguna - SC

MensagemEnviada: Qua Ago 22, 2012 5:45 pm    Assunto: Responder com Citação

"Tem como eu verificar se as colunas são nulas ou não! " de cada tabela? desculpe não entendi bem sua duvida
_________________
Canal Delphi+ INSCREVA-SE: http://www.youtube.com/channel/UCnVF5ly5PRwZONE-U7xZM6w?feature=watch
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Dalvane
Novato
Novato


Registrado: Terça-Feira, 15 de Mai de 2012
Mensagens: 25

MensagemEnviada: Qua Ago 22, 2012 5:48 pm    Assunto: Responder com Citação

Isso, quero verificar na tabela que eu selecionar, todas as colunas que são nulas e que não são nulas.
=]
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Ghost_Rider
Colaborador
Colaborador


Registrado: Segunda-Feira, 6 de Outubro de 2003
Mensagens: 4437

MensagemEnviada: Qua Ago 22, 2012 5:50 pm    Assunto: Responder com Citação

Tá, quando vc diz se elas são nulas quer dizer os dados, isso ?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
maizena
Colaborador
Colaborador


Registrado: Terça-Feira, 20 de Março de 2012
Mensagens: 1497
Localização: Laguna - SC

MensagemEnviada: Qua Ago 22, 2012 5:54 pm    Assunto: Responder com Citação

Basta vc criar um select + ou - assim
Código:

QUERY.close;
QUERY.clear;
QUERY.sql.text:='select * from SUABABELA where SEUCAMPO = isnull';
QUERY.open;


Desta forma vc tera os campos vazios da sua tabela

Espero que ajude
_________________
Canal Delphi+ INSCREVA-SE: http://www.youtube.com/channel/UCnVF5ly5PRwZONE-U7xZM6w?feature=watch
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Dalvane
Novato
Novato


Registrado: Terça-Feira, 15 de Mai de 2012
Mensagens: 25

MensagemEnviada: Qua Ago 22, 2012 6:04 pm    Assunto: Responder com Citação

hmm, acho que não consegui me expressar direito...

Eu não quer pegar os campos que possuem valores não nulas e sim as colunas que tem a propriedade not null definida como true ou false (lá na hora de criar as colunas...).
=]
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Ago 22, 2012 6:25 pm    Assunto: Responder com Citação

Boa tarde,

Qual banco de dados e versão você está utilizando?


Editado pela última vez por imex em Ter Out 03, 2023 3:57 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
belo
Novato
Novato


Registrado: Segunda-Feira, 19 de Abril de 2004
Mensagens: 46
Localização: Recife/PE

MensagemEnviada: Qua Ago 22, 2012 8:34 pm    Assunto: Responder com Citação

Aqui retornar todos os campos NULL e NOT NULL

SELECT DISTINCT
B.RDB$RELATION_NAME AS TABELA,
B.RDB$FIELD_NAME AS CAMPO,
B.RDB$NULL_FLAG,
CASE WHEN B.RDB$NULL_FLAG = 1 THEN 'SIM' ELSE 'NÃO' END AS NOT_NULL
FROM RDB$RELATIONS A

INNER JOIN RDB$RELATION_FIELDS B
ON A.RDB$RELATION_NAME = B.RDB$RELATION_NAME
INNER JOIN RDB$FIELDS C
ON B.RDB$FIELD_SOURCE = C.RDB$FIELD_NAME
INNER JOIN RDB$TYPES D
ON C.RDB$FIELD_TYPE = D.RDB$TYPE

WHERE A.RDB$SYSTEM_FLAG = 0

ORDER BY A.RDB$RELATION_NAME, B.RDB$FIELD_ID

Se quiser filtrar modifique WHERE para:

WHERE A.RDB$SYSTEM_FLAG = 0 AND B.RDB$NULL_FLAG IS NOT NULL

abs

Eduardo Belo
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qua Ago 22, 2012 11:50 pm    Assunto: Responder com Citação

Na verdade amigo vc quer é o metadado das tabelas cujos os campos são not null...

bem, o nosso amigo resolveu o que vc precisa.


bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Dalvane
Novato
Novato


Registrado: Terça-Feira, 15 de Mai de 2012
Mensagens: 25

MensagemEnviada: Qui Ago 23, 2012 8:46 am    Assunto: Responder com Citação

Bom dia!

Tentei usar esse script que me passou, só que está me dando erro aqui:
"FROM RDB$RELATIONS A"

Diz que essa relação não existe!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
belo
Novato
Novato


Registrado: Segunda-Feira, 19 de Abril de 2004
Mensagens: 46
Localização: Recife/PE

MensagemEnviada: Qui Ago 23, 2012 4:18 pm    Assunto: Responder com Citação

Dalvane escreveu:
Bom dia!

Tentei usar esse script que me passou, só que está me dando erro aqui:
"FROM RDB$RELATIONS A"

Diz que essa relação não existe!


Aqui funciona perfeitamente no IBExpert com Firebird 2.5.

Onde vc está colocando esse Script?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Dalvane
Novato
Novato


Registrado: Terça-Feira, 15 de Mai de 2012
Mensagens: 25

MensagemEnviada: Qui Ago 23, 2012 4:22 pm    Assunto: Responder com Citação

Desculpa aí!
Acabei esquecendo de informar que o meu banco de dados é PostgreSQL!

Me desculpem!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qui Ago 23, 2012 5:24 pm    Assunto: Responder com Citação

Não tenho experiência com o PostgreSQL, mas confira o artigo abaixo:
http://www.alberton.info/postgresql_meta_info.html

Espero que ajude.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
belo
Novato
Novato


Registrado: Segunda-Feira, 19 de Abril de 2004
Mensagens: 46
Localização: Recife/PE

MensagemEnviada: Qui Ago 23, 2012 5:32 pm    Assunto: Responder com Citação

Dalvane escreveu:
Desculpa aí!
Acabei esquecendo de informar que o meu banco de dados é PostgreSQL!

Me desculpem!


O amigo Imex fez essa pergunta logo no inicio!

Esse é o maior problema dos participantes aqui no forum, falta de atenção e dificuldade em dizer "OBRIGADO".
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Dalvane
Novato
Novato


Registrado: Terça-Feira, 15 de Mai de 2012
Mensagens: 25

MensagemEnviada: Sex Ago 24, 2012 3:37 pm    Assunto: Responder com Citação

belo escreveu:
Dalvane escreveu:
Desculpa aí!
Acabei esquecendo de informar que o meu banco de dados é PostgreSQL!

Me desculpem!


O amigo Imex fez essa pergunta logo no inicio!

Esse é o maior problema dos participantes aqui no forum, falta de atenção e dificuldade em dizer "OBRIGADO".



Tchê, obrigado por tentar ajudar!
=]
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página 1, 2  Próximo
Página 1 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB