Existe campo boolean no FB?
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
sim = marque
nao = desmarque..
existe algo?
expliquem tudo completo por favor
Um abraço
Njuniorba
Curtidas 0
Respostas
Edilcimar
20/04/2005
crie um campo de tamanho 1 e coloque 0 e 1 ou S e N ou T e F
GOSTEI 0
Raserafim
20/04/2005
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:
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).
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).
GOSTEI 0
Isabelct
20/04/2005
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:
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.
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);
GOSTEI 0
Raserafim
20/04/2005
oi njuniorba, já que vc me disse, via MP, que deu erro no check, então tente o seguinte:
VALUE BETWEEN -1 AND 0
GOSTEI 0