DBCheckbox

Delphi

27/09/2009

Eu tenho um form Nivel de Acesso definido com codigo e descrição. Estou querendo usar vários dbcheckbox para cada item de acesso. Ex.:
dbcheckbox1: Cópia de Segurança;
dbcheckbox2: Controle de Acesso;
..
..
..
..
..
dbcheckbox15: Relatório de Procedimentos;

Meu banco de dados é em SQL server e defini na tabela NIVEL_ACESSO o campo ITEM_MENU_ACESSO como bit. No delphi na propriedade ValueChecked como 1 e na Valueunchecked como 2

No entanto gostaria de saber se esta linha de codigo está certa:

evento onclick do dbcheckbox:

[b:89620e25e9]if dbcheckbox1.Checked then
dm.tblnivelacessoITEM_MENU_NIVEL.Value:= true;[/b:89620e25e9]

Quando executo o programa ele dá um erro tipo:
´Dataset not in edit or insert mode´

A minha pergunta é: Qual seria a linha de código certa e se tenho que fazer para cada DBCheckbox? Posso usar um botão de incluir e fazer o evento nele?

Obrigado,
Carlos[b:89620e25e9][/b:89620e25e9][b:89620e25e9][/b:89620e25e9]


Caleonel

Caleonel

Curtidas 0

Respostas

Edsant

Edsant

27/09/2009

Amigo,

Dataset not in edit or insert mode´ é porque o seu DataSet não está em estado de edição ou de inserção..

Tente dar um dataset.edit antes desse código....


GOSTEI 0
Caleonel

Caleonel

27/09/2009

edsant,
eu fiz o que você falou ficou assim:

[b:ba2a35163e]dm.tblnivelacessoITEM_MENU_NIVEL.DataSet.Edit;
if dbcheckbox1.Checked then
dm.tblnivelacessoITEM_MENU_NIVEL.Value:= true;[/b:ba2a35163e]

é desse jeito ou assim:
[b:ba2a35163e] if dbcheckbox1.Checked then
begin
dm.tblnivelacessoITEM_MENU_NIVEL.DataSet.Edit;
dm.tblnivelacessoITEM_MENU_NIVEL.Value:= true;
end;[/b:ba2a35163e]

os dois modos dá. Tenho que fazer isso para cada DBCheckbox? Por que que quando rodo todos estão assinalados como fosse um quadrado verde? Quando tento desmarcar um ou dois os outros ficam marcados e quando vou salvar não aparece só quando estão todos assinalados?


GOSTEI 0
Edsant

Edsant

27/09/2009

Você tem que colocar a tabela em estado de edição apenas uma vez antes de dar o post.

cria um botão Editar e nele coloque o código:
[b:ba2a35163e]dm.tblnivelacesso.edit;[/b:ba2a35163e]

Ai você pode fazer as alterações com dbcheckbox...


GOSTEI 0
POSTAR