GARANTIR DESCONTO

Fórum FireBird e o atributo Boolean #52037

06/08/2005

0

Olá a todos..

Estou tentando criar um atributo Boolean no FB e não estou conseguindo..

eu fiz mais ou menos assim:

VARCHAR (5) CHARACTER SET ISO8859_1
DEFAULT ´FALSE´
CHECK (VALUE IN(´TRUE´,´FALSE´))
COLLATE PT_PT

Isso é um domínio.. ok?

O problema é o seguinte.. não consigo salvar nada dentro destre registro com um componentes checkbox.. e é isso que preciso fazer.. ou será que tenho que fazer uma gambiarra para fazer isso funcionar?

Por exemplo: if BANCO.TabelaCAMPO_ATIVO.Value = True then
checkbox.checked;

Como faço para não fazer gambiarras?

[color=green:2e90971f68]Movido de Delphi para Interbase/Firebird[/color:2e90971f68]


Netcrusher

Netcrusher

Responder

Posts

06/08/2005

Marcos.rio

Caro amigo, basta você utilizar o componente DBCheckBox.


Responder

Gostei + 0

06/08/2005

Netcrusher

Já testei tmb e mesmo assim não funcionou.

Lembrando que o FireBird não possui o atributo Boolean..


Responder

Gostei + 0

06/08/2005

Sistemald

Devo lembrar que este collate que você está usando é case sensitive

provavelmente seu dbcheckbox esta configurado para usar True e False ao invés de TRUE E FALSE, aconcelho a trocar no dominio para True e False, mas você também pode trocar na propriedade ValueChecked e valueUnchecked do DbCheckbox


Responder

Gostei + 0

06/08/2005

Netcrusher

Realmente o que vc disse é verdade. Porém ainda não está funcionando.. por exemplo.. inseri um registro no banco que informa se o cliente está ativo, ou não. Por exemplo:

Cliente.CLI_ATIVO = True;

Quando abro o formulário, o CheckBox aparece Checado, e quando altero no banco para CLI_ATIVO = False, então o Check(lembrando que é um DBCheckBox) aparece realmente inativo..

Porém, se eu for alterar esta propriedade no meu projeto, ele simplesmente não salva no Banco. Se eu clico no checkbox, ele ativa, porém não salva no banco.

Será que ainda tenho que configurar algo no componente?


Responder

Gostei + 0

07/08/2005

Sistemald

Você está dando um commit após alterar a tabela, pois pelo que você me falou parece ser isto.
Qual meio de acesso você está usando?


Responder

Gostei + 0

07/08/2005

Netcrusher

Após de dar um POST na tabela..estou dando um commit.

Mas qual é o problema em relação a isso?


Responder

Gostei + 0

07/08/2005

Gandalf.nho

Primeiro, uma sugestão: em vez de usar VARCHAR(5) use CHAR(1) ou SMALLINT. Para fazer o DBCheckbox funcionar em campos não booleanos vc deve setar as propriedades ValueChecked e ValueUnchecked do componente conforme os valores que vc irá usar. No meu caso eu uso SMALLINT, portanto seto ValueChecked = 1 e ValueUnchecked = 0.


Responder

Gostei + 0

07/08/2005

Bruno Belchior

faço exatamente como a colega citou acima só que crio um domínio que restringe apenas a 0 e 1, mas na íntegra da na mesma...


Responder

Gostei + 0

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

Aceitar