Update entre tabalas
Bom dia a todos!!! Estou com um pequeno problema para resolver e não estou conseguindo um método para resolver. é o seguinte, tenho 3 tabelas, uma setor (id_setor, nome_setor, liberado), outra usuario (id_usuario, username, passwd, id_setor) e outra que é a junção de ambas anterior setores_usuarios (id_setor, id_usuario)
Ao cadastrar um usuario seleciono quais setores este usuario podera ter acesso e é gravado o id_setor e id_usuario nessa tabela setores_usuarios, isso esta funcionando perfeitamente.
acontece que em tempo de execução tenho uma tela de cadastro de usuario e preciso que ao selecionar o usuario trazer em um dbgrid todos os setores e campo liberado mostrar checkbox para quais os setores aquele usuario selecionado tem acesso.
para saber qual setor o usuario tem acesso faco um select na tabela setores_usuarios
select
setores_usuarios.id_setor,
setores_usuarios.id_usuario
from setores_usuarios
inner join sys_usuarios on (setores_usuarios.id_usuario = sys_usuarios.codigo)
where
(
(setores_usuarios.id_usuario = sys_usuarios.codigo)
)
order by setores_usuarios.id_setor
com isso filtro todos os setores para o usuario selecionado...
agora vem o que preciso e não estou conseguindo fazer, é pegar o resultado desse select os codigos do ID_SETOR e comparar com a tabela setores ID_SETOR e o codigo que existir nas 2 tabelas para o usuario selecionar gravar na tabela setores campo LIBERADO valores 0 para não liberado e 1 para liberado (que existe registro na tabela setores_usuarios). Isso não estou conseguindo realizar em tempo de execução.
ex: resultado do select tab setores
--------------------------------------- ------------------------------------------
id_setor | id_usuario id_setor | nome_setor | liberado
1 | 1 1 | sala a | 1
3 | 1 2 | sala b | 0
4 | 1 3 | sala c | 1
4 | sala d | 1
em tempo de execução depois de comprar os id_setor entre as 2 tabelas tem que fazer um update no campo LIBERADO na tabela setores.
alguem pode me ajudar ou me passar uma outra solução.
1 usuario pode acessar varios setores
1 setor pode ser acessado por varios usuarios
Ao cadastrar um usuario seleciono quais setores este usuario podera ter acesso e é gravado o id_setor e id_usuario nessa tabela setores_usuarios, isso esta funcionando perfeitamente.
acontece que em tempo de execução tenho uma tela de cadastro de usuario e preciso que ao selecionar o usuario trazer em um dbgrid todos os setores e campo liberado mostrar checkbox para quais os setores aquele usuario selecionado tem acesso.
para saber qual setor o usuario tem acesso faco um select na tabela setores_usuarios
select
setores_usuarios.id_setor,
setores_usuarios.id_usuario
from setores_usuarios
inner join sys_usuarios on (setores_usuarios.id_usuario = sys_usuarios.codigo)
where
(
(setores_usuarios.id_usuario = sys_usuarios.codigo)
)
order by setores_usuarios.id_setor
com isso filtro todos os setores para o usuario selecionado...
agora vem o que preciso e não estou conseguindo fazer, é pegar o resultado desse select os codigos do ID_SETOR e comparar com a tabela setores ID_SETOR e o codigo que existir nas 2 tabelas para o usuario selecionar gravar na tabela setores campo LIBERADO valores 0 para não liberado e 1 para liberado (que existe registro na tabela setores_usuarios). Isso não estou conseguindo realizar em tempo de execução.
ex: resultado do select tab setores
--------------------------------------- ------------------------------------------
id_setor | id_usuario id_setor | nome_setor | liberado
1 | 1 1 | sala a | 1
3 | 1 2 | sala b | 0
4 | 1 3 | sala c | 1
4 | sala d | 1
em tempo de execução depois de comprar os id_setor entre as 2 tabelas tem que fazer um update no campo LIBERADO na tabela setores.
alguem pode me ajudar ou me passar uma outra solução.
1 usuario pode acessar varios setores
1 setor pode ser acessado por varios usuarios
Iramar Junior
Curtidas 0