Fórum Tabela Virtual e mostrar os dados no DBGrid #442813
14/05/2013
0
Frederico Brigatte***
Curtir tópico
+ 0Posts
14/05/2013
Frederico Brigatte***
Gostei + 0
14/05/2013
Landerson Santos
Poderia ser mais específico no processo desejado?
O primeiro entendimento, você poderia usar um clientdataset e ficar salvando e apagando seu conteúdo enquanto executa a aplicação.
Na verdade precisamos saber ao certo o que deseja realmente fazer.
Gostei + 0
14/05/2013
Landerson Santos
Poderia ser mais específico no processo desejado?
O primeiro entendimento, você poderia usar um clientdataset e ficar salvando e apagando seu conteúdo enquanto executa a aplicação.
Na verdade precisamos saber ao certo o que deseja realmente fazer.
Gostei + 0
14/05/2013
Frederico Brigatte***
Action - Texto
Action_Nome - Texto
Permissao - Não
Gostaria de gravar numa tabela virtual esses campos sem ter que gravar na tabela Acao. O que eu quero gravar é os campos que o perfil X terá acesso, faria a gravação física na Tabela Permissoes Access dos campos que clicar no DBGrid que seriam os dados da tabela temporária. Só que tem um detalhe, quando clico no grid, ele grava na tabela Permissao o campo Permissao assim: Onde está N grava S e vice-versa.
Gostei + 0
14/05/2013
Frederico Brigatte***
Gostei + 0
14/05/2013
Frederico Brigatte***
DM.Cds.CreateDataSet;
DM.Cds.Open;
if DM.Cds.RecordCount = 0 then
for i := 0 to FPrincipal.ComponentCount - 1 do
if FPrincipal.Components[i] is taction then
begin
DM.Cds.insert;
DM.CdsAction.value := taction(fprincipal.Components[i]).caption;
DM.CdsAction_nome.value := taction(fprincipal.Components[i]).name;
DM.CdsPermissao.value := 'N';
end;
Como que faço o inverso, da virtual para física? Estou usando ADO. Fiz assim mas não ta varrendo a tabela, fica só no for e insert:
DM.Acoes.Open;
if DM.Acoes.RecordCount = 0 then
for i := 0 to DM.Cds.FieldCount -1 do
DM.Acoes.insert;
DM.AcoesAction.value := varCdsClone.FieldByName(DM.Cds.Fields[i].FieldName).Value;
DM.AcoesAction_nome.value := DM.CdsAction_nome.value;
DM.AcoesPermissao.value := DM.CdsPermissao.value;
DM.Acoes.Post;
DM.Acoes.close;
DM.Acoes.Open;
Gostei + 0
14/05/2013
Frederico Brigatte***
DM.Acoes.Open;
if DM.Acoes.RecordCount = 0 then
for i := 0 to DM.Cds.RecordCount - 1 do
begin
DM.Acoes.insert;
DM.AcoesAction.value := DM.Cds.fieldbyname('Action').AsString;
DM.AcoesAction_nome.value := DM.Cds.fieldbyname('Action_Nome').AsString;
DM.AcoesPermissao.value := DM.Cds.fieldbyname('Permissao').AsString;
DM.Acoes.Post;
end;
DM.Acoes.close;
DM.Acoes.Open;
Estou fazendo assim, mas só está pegando o primeiro valor.
Gostei + 0
14/05/2013
Frederico Brigatte***
DM.Acoes.Open;
// if DM.Acoes.RecordCount = 0 then
DM.Cds.First;
while not DM.Cds.eof do
//for i := 0 to DM.Cds.RecordCount - 1 do
begin
DM.Acoes.insert;
DM.AcoesAction.value := DM.Cds.fieldbyname('Action').AsString;
DM.AcoesAction_nome.value := DM.Cds.fieldbyname('Action_Nome').AsString;
DM.AcoesPermissao.value := DM.Cds.fieldbyname('Permissao').AsString;
DM.Acoes.Post;
DM.Cds.Next;
end;
DM.Acoes.close;
DM.Acoes.Open;
No campo Permissão na tabela virtual está padrão N. Se gravar na tabela física, vai gravar como padrão N. Gostaria de já poder gravar na tabela física o valor correto, ou seja, S ou N, de acordo com o acesso.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)