Fórum atualizar informacoes em mais de uma tabela #219842
11/03/2004
0
tenho um select entre duas tabelas e gostaria de modificar informacoes das duas tabelas em uma dbgrid !!!! alguem sabe me dizer como fazer ?
Cristiano Santos
Fortaleza/CE
Cristiano021
Curtir tópico
+ 0Posts
11/03/2004
Cabelo
poderia explicar melhor a sua dúvida e se possível poste o seu SQL para eu analizar..
Bem como vc faz as alterações, e quais elas são..
sem mais
Cabelo
Gostei + 0
11/03/2004
Cristiano021
tabelas :
areas
-areid
-aredescricao
clientes
-cliid
-areid
-cliNome
SELECT * FROM areas are, clientes cli
WHERE (cli.areid=are.areid)
as informacoes de areas e clientes, de acordo com o select, será mostrado na dbgrid
como faria para alterar as informacoes de areas e cliente na dbgrid
?
Gostei + 0
11/03/2004
Cabelo
este problema ocorre devido o método request Live..
quando vc executa um join em uma query, vc não consegue alterar os dados..
Eu sugiro uma ´Gambiarra´, fazendo isto :
Use dois componente TTable, e selecione somente o campo1 para a 1ª table e somente o campo2 para a segunda table, no evento beforePost da query vc atribui os valores para alteração e grave na base, não esqueça de colocar um ABORT no final da procedure, para evitar assim que delphi execute o evento Post;
depois feche e abra a query novamente, que os dados estarão alterados, não esqueça de ponteirar a query primeiro..
sem mais
Cabelo
Gostei + 0
11/03/2004
Cristiano021
Gostei + 0
11/03/2004
Cabelo
Componentes usados
Query1, DataSourse1, Table1, Table2, Grid1 :
SELECT * FROM areas are, clientes cli
WHERE (cli.areid=are.areid);
abre a query1, o datasource terá as propriedades Dataset = Query1, e o grid1 tera o datasurce = datasourse1
os campos irão aparecer no grid :
no evento BeforePost da Query1:
as propriedades : Table1
table = areas
fieldindex = areid
table 2
table = clientes
fieldindex = cliid
não esqueça de adicionar os campos ao fields editor das duas tabelas.
table1.Open;
Table2.open;
Table1.edit;
Table2.edit;
Table1.fieldbyname(´CAMPO_da_1ª_tabela´).value := Query1.fieldbyname(´CAMPO_da_1ª_tabela´).value;
Table2.fieldbyname(´CAMPO_da_2ª_tabela´).value := Query1.fieldbyname(´CAMPO_da_2ª_tabela´).value;
Table1.Post;
Table2.Post;
query1.close;
query1.open;
query.locate(campo index, valor do campo index, []);
abort;
se houver problemas me diga..
sem mais
cabelo
Gostei + 0
11/03/2004
Cristiano021
[]s
Cristiano Santos
Fortaleza/CE
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)