Fórum Existe campo boolean no FB? #278289

20/04/2005

0

quero criar no delphi um check no BD com tipo sim/nao

sim = marque

nao = desmarque..

existe algo?

expliquem tudo completo por favor

Um abraço


Njuniorba

Njuniorba

Responder

Posts

21/04/2005

Edilcimar

crie um campo de tamanho 1 e coloque 0 e 1 ou S e N ou T e F


Responder

Gostei + 0

21/04/2005

Raserafim

realmente o FB não tem campo boolean, mas vc pode simular um.
pode criar um campo do tipo Smallint e na cláusula Check pode colocar:
VALUE IN (-1, 0)


prefiro usar o -1 para true e 0 para false pois é o padrão dos bancos que conheço e do delphi. poderia até fazer como disse edilcimar, usando um campo Char de tamanho 1, o que economizaria um pouco de espaço e recurso, mas aó não pode usar o -1. Aí é escolha sua, prefiro do meu modo pois posso fazer atribuições mais simples e rápidas no delphi.

feito isso, agora no delphi, se vc for usar o componente DBCheckBox basta na propriedade ValueChecked colocar o valor que vc atribui para o true (-1 no meu caso), e na propriedade ValueUnChecked o valor para false (0 no meu caso).


Responder

Gostei + 0

22/04/2005

Isabelct

Para aperfeiçoar a dica dos colegas, você pode criar um domínio (uma espécie de tipo de dado criado pelo programador), que já fará todas as verificações de integridade, e associar este domínio aos campos das suas tabelas.

Exemplo:
CREATE DOMAIN BOOLEAN AS 
CHAR(1) CHARACTER SET ISO8859_1 
DEFAULT ´F´ 
NOT NULL 
CHECK ((VALUE=´T´) OR (VALUE=´F´)) 
COLLATE EN_US 


Ou você pode definí-lo como Smallint, como sugeriu o raserafim. O tipo de dado fica a seu critério.

Daí depois você usa este domínio como um tipo de dado normal.

CREATE TABLE TESTE (MEU_CAMPO_BOOLEAN BOOLEAN);



Responder

Gostei + 0

24/04/2005

Raserafim

oi njuniorba, já que vc me disse, via MP, que deu erro no check, então tente o seguinte:
VALUE BETWEEN -1 AND 0



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar