atualizar informacoes em mais de uma tabela
olá amigos
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
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
Curtidas 0
Respostas
Cabelo
11/03/2004
Amigo
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
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
Cristiano021
11/03/2004
vamos supor
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
?
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
Cabelo
11/03/2004
Caro Amigo
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
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
Cristiano021
11/03/2004
voce tem como me enviar um exemplo ?
GOSTEI 0
Cabelo
11/03/2004
não tenho nenhum exemplo que vc possa usar, mas vou passar aqui o que deve fazer..
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
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
Cristiano021
11/03/2004
ok..vou ver se da certo
[]s
Cristiano Santos
Fortaleza/CE
[]s
Cristiano Santos
Fortaleza/CE
GOSTEI 0