Fórum Guardar Chekbox em Banco de dados Firebird #472128
06/03/2014
0
Tenho um sisteminha que em um formulário com vários chekbox em um Groupbox. Então exporta os chekbox selecionados para um relatório no QuickReport.
Queria salvar em um banco de dados os registros selecionados que no caso são em chekbox.
Ex.:
www.jawainformatica.com.br/sistemas/imagens/chekbox.jpg
IR PARA O BANCO DE DADOS APENAS OS QUE FORAM SELECIONADOS
COMO DEVE SER ESTE BANCO DE DADOS?
OBRIGADO AMIGOS
ISTO É PARA MINHA MONOGRAFIA
Jawa-informática
Curtir tópico
+ 0Posts
06/03/2014
Luiz
Mas você poderia criar uma tabela com os campos referentes ao checkbox, e lá nos campos do banco de marcos marcar :
Tabela
Campo1
Campo2
Campo3
Campo4
...
E você poder criar esses campos como boolean (True ou false) .. ou mesmo como char(1), ai vc marca S quando tiver selecionado ou N quando não tiver (sim ou nao) ... 0 ou 1 ... a forma como achar melhor tratar ...
Para ter o retorno do checkbox (true or false): CheckBox1.Checked;
Gostei + 0
06/03/2014
Claudio Andrade
Mas você poderia criar uma tabela com os campos referentes ao checkbox, e lá nos campos do banco de marcos marcar :
Tabela
Campo1
Campo2
Campo3
Campo4
...
E você poder criar esses campos como boolean (True ou false) .. ou mesmo como char(1), ai vc marca S quando tiver selecionado ou N quando não tiver (sim ou nao) ... 0 ou 1 ... a forma como achar melhor tratar ...
Para ter o retorno do checkbox (true or false): CheckBox1.Checked;
Só reforçando o que o colega falou, existe 2 propriedades no DBCheckBox: ValueChecked onde você coloca 'S', e ValueUnChecked onde você coloca 'N'
São esses valores que serão gravados no banco de dados e dar o retorno ao passar os registros no sistema.
A aspa não é necessária*
Abraço.
Gostei + 0
08/03/2014
Jawa-informática
CREATE TABLE EXAMES
(
REGISTRO INTEGER NOT NULL,
NOME VARCHAR(40) NOT NULL,
IDADE INTEGER NOT NULL,
MEDICO VARCHAR(40) NOT NULL,
PLANO_SAUDE VARCHAR(30) NOT NULL,
HEMOGRAMA SMALLINT CHECK ((0,1)), //este campo é chekbox
GLICEMIA SMALLINT CHECK ((0,1)), //este campo é chekbox
COLESTEROL SMALLINT CHECK ((0,1)), //este campo é chekbox
TRIGLIDERIDIOS SMALLINT CHECK ((0,1)), //este campo é chekbox
HDL SMALLINT CHECK ((0,1)) //este campo é chekbox
)
SERIA DESTA FORMA COM O TIPO DE CAMPO "smallint" determinando para ele (0,1) ???
NO FORMULÁRIO TEM EM TORNO DE UNS 80 CHEKBOX E QUATRO edits
Gostei + 0
11/03/2014
Jawa-informática
Obtive também ajuda de um grande Implementador o André do SubRotina.
Consegui resolver
if chekbox1.Checked then
ClientDataSet1.FieldByName('chekbox1').AsInteger := 1
else
ClientDataSet1.FieldByName('chekbox1').AsInteger := 0;
Se o ChekBox checado então recebe (1) se não recebe (0). Isto no delphi e no
banco de dados determino os campos do ChekBox como Smallint.
Abração amigos e obrigado!
RESOLVIDO
Gostei + 0
11/03/2014
Luiz
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)