REVELAR

Fórum localizar registro que tiver o mesmo quot;Namequot; do com #329735

19/09/2006

0

salve galera!

tenho duas tabelas, USUARIOS e PRIVILEGIOS, como segue abaixo:

TABLE USUARIOS (
    CODIGO      INTEGER NOT NULL,
    PRIVILEGIO  INTEGER,
    CONSTRAINT PK_USUARIOS PRIMARY KEY (CODIGO)
);


TABLE PRIVILEGIOS (
    CODIGO           INTEGER NOT NULL,
    CODIGO_USUARIO   INTEGER,
    NOME_COMPONENTE  VARCHAR(20),
    CONSTRAINT PK_PRIVILEGIOS PRIMARY KEY (CODIGO)
);



fasso um select na tabela usuarios para pegar todos os privilegios do usuário selecionado, como segue abaixo:

DM.CDS_Priv.Close;
DM.CDS_Priv.CommandText  := ´SELECT * FROM PRIVILEGIOS WHERE CODIGO_USUARIO = ´+ Edit_Codigo.Text;
DM.CDS_Priv.Open;


bom, daqui pra frente que pintou meu problema... agora eu teria que ir pegando o nome (checkbox.name) de cada checkbox e conferindo se ele existe no campo ´NOME_COMPONENTE´ da tabela PRIVILEGIOS. se ele estiver cadastrado na tabela, entao ´descheca´ ele, se ele nao tiver cadastrado, checa ele...

fiz assim:

DM.CDS_Priv.Close;
DM.CDS_Priv.CommandText  := ´SELECT * FROM PRIVILEGIOS WHERE CODIGO_USUARIO = ´+ Edit_Codigo.Text;
DM.CDS_Priv.Open;

DM.CDS_Priv.First;

for i := 0 to ComponentCount -1 do
if Components[i] is TCheckBox then
begin
While not DM.CDS_Priv.Eof do
begin

if not DM.CDS_Priv.Locate(Principal.Criptografia(DM.CDS_PrivNOME_COMPONENTE.AsString,236),Components[i].Name ,[loCaseInsensitive]) then

begin
TCheckBox(Components[i]).Checked  := true;
end

else

begin
TCheckBox(Components[i]).Checked  := false;
end;

DM.CDS_Priv.Next;
end;
end;


Erro gerado: ´CDS_Priv: field ´cd_bd´ not found´

é claro que cb_bd é o nome de um checkbox, e o meu locate ta tratando ele como um campo, pq tem algo errado ai que o tanso aqui nao sabe o que é.... se alguem puder me ajudar....

abraços!!!


Mahdak

Mahdak

Responder

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

Aceitar