 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Jun 17, 2005 8:46 pm Assunto: Como deletar 3 tabelas de uma so vez? |
|
|
Ola amigos,
Alguem pode me dar uma ideia como faço para deletar esses arquivos?
Eh o seguinte: Criei 3 tabelas (paradox) 1ª faço lancamento de sequencia, a 2ª para acumular valores e a 3ª para acumular valores tambem, tenho 3 dbgrids para table1, table2 e table3.
Na hora de gravar o lançamento fiz um locate na table2 e na table3 para verificar os lançamentos.
na table 2 fiz assim:
if not table2.LOCATE(\'cnpj\',edit1.TEXT,[]) then
begin
table2.append;
o que significa que se nessa tabela nao encontrar o cnpj ja cadastrado vai cadastrar um novo, caso contrario acumula os valores $ na cnpj ja cadastrada.
no table3 fiz assim:
if not table3.LOCATE(\'CF\',edit3.TEXT,[]) then
begin
table4.append;
o que significa que se nessa tabela nao encontrar a CF (classificacao fiscal) ja cadastrado vai cadastrar um novo CF, caso contrario acumula os valores $ na CF ja cadastrada tambem.
Bom ate ai tudo blz, certinho, o problema eh se eu precisar excluir? como fazer? se eu selecionar na dbgrid do table1 que eh a sequencia vai deletar o table2 e o table3 errado do que fiz e o pior a soma das duas tables vai ficar errada. sera que tem algum jeito de fazer essa exclusao?
Alguem pode me ajudar?
Desde ja agradeço!
Obrigado ... Adriano.
_________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
ariboni Aprendiz

Registrado: Sexta-Feira, 18 de Março de 2005 Mensagens: 249
|
Enviada: Sáb Jun 18, 2005 9:34 am Assunto: Como deletar 3 tabelas de uma so vez? |
|
|
Meu amigo.
Voce pode tentar fazer um relacionamento nas tabelas 2 e 3 da siguinte forma: na propriedade MasterSource colocar o dataSource da tabela 1 em que voce usou o comando locate. e em seguida colocar na propriedade MasterField, no botão de tres pontos ... o relacionamento, ou seja o CNPJ, que é comum nas tres tabelas.
Fazer o mesmo na tabela 3.
e em seguida deletar os registros.
Ou simplesmente antes de excluir o registro, selecionado no dbgrid, voce pode ler as outras duas tabelas pelo campo CNPJ e excluir tambem.
Espero que lhe ajude.
|
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Seg Jun 20, 2005 9:50 am Assunto: Como deletar 3 tabelas de uma so vez? |
|
|
Ola meu amigo Ariboni.
Vamos ver se eu entendi, na sua dica vc pede para eu criar um index no database desktop das table2 e tabel3 isso? Tipo criar uma chave primaria no cnpj * depois fazer um index do CNPJ no secoundary Index, para ligar no datasource1 da table1 dentro do form.
Fiz dessa forma salvei os index assim idxcnpj do table2 e idxcnpj2 do table3, liguei as dias tables na table1 como vc me explicou, mais nao obtive resultado.
Vou ser um pouco mais claro como fica os dbgrid no form
exemplo do lancamento
cnpj 77089000234
cf 1
valor $ 500,00
ipi $ 50,00
no dbgrid1 ele aparece assim no dbgrid2 tambem e no dbgrid3 tambem ai faço um novo lançamento
cnpj 77089000234
cf 2
valor $ 150,00
ipi $ 15,00
no dbgrid 1 vai criar uma nova linha com os dados do lancamento, do dbgrid2 ele vai acumular pq o cnpj eh o mesmo entao no dbgrid2 fica assim:
cnpj 77089000234
nao tem CF pq na tabela 2 nao precisa
valor $650,00 pq tinha $500,00 + $150,00 que inclui
ipi $ 65,00 tambem o mesmo de cima.
e na dbgrid3 vai incluir uma nova linha pq o CF aonde o locate faz a consulta nao eh o mesmo que o primeiro lançamento, se nao faz igual ao dbgrid2, e no dbgrid2 se o cnpj nao for igual ele inclui uma nova linha para o lançamento, o trabalho do locate nassas dias tabelas eh verificar se ja esta cadastrado para acumular os valores se nao estiver incluir uma nova linha. Isso tudo esta dentro de um form. para verificar os lançamentos.
Agora se eu tiver que alterar/excluir algum lançamento nao sei como faço no table2 e no table3, pq ja esta acumulado a soma dos valores.
Nao sei se vc entendeu minha duvida.
Mas espero que possa me ajudar
Desde ja agradeço
Obrigado
Adriano... _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Seg Jun 20, 2005 2:49 pm Assunto: Como deletar 3 tabelas de uma so vez? |
|
|
Ola amigos, to quebrando a cabeça com essas 3 tables e nao chego a nenhuma conclusao como fazer para alterar ou excluir os lançamentos.
Coloquei nos 3 tables um autoincremento para ver se seria possivel excluir por codigo, nao funcionou pq fiz 4 lançamentos na table1 ficou assim
sequencia cnpj..................CF...valor
000000001 00658414000147 01....500,00
000000002 00658411000147 02....500,00
000000003 00562518000120 02....100,00
000000004 30658478000188 02....200,00
na table2 ficou assim: Obs nessa table nao precisa do CF
sequencia cnpj.....................valor
000000001 00658414000147....1000,00 //somou os valores pq a cnpj eh a mesma
000000002 00562518000120.....100,00
000000003 30658478000188.....200,00
na table3 ficou assim: Obs nessa table nao precisao do CNPJ
a table2 ficou assim:
sequencia CF...valor
000000001 01....500,00
000000002 02....800,00 //somou os valores pq a CF 02 tem tes itens incluidos
Se eu tentar excluir por sequencia observe que nao bate as sequencias, se colocar o CNPJ na table3 e tentar excluir por CNPJ nao vai excluir certo pq na table3 o locate esta para procurar somente por CF ai ele apaga a ultimo cnpj cadastrado nessa table e inclui o que acabei de lançar, pro valores tambem nao da pois pode existir valores repitidos, bom enfim pelo que vi nao tem jeito de fazer alteraçao/exclusao nessas tables 2 e 3.
Entao queria saber se somente uma table ou query tem como fazer tudo isso para aparecer na dbgrid, ela pode ser a primeira table1 mais na dbgrid2 essa table1/query faz a soma conforme o CNPJ e na dbgrid3 a mesma table1/query faz as somas conforme a CF.
Acho que usando o SQL da para fazer, pois o que preciso eh somente aparecer os dados certos nas dbgrids, depois para fazer o relatorio faço o mesmo esquema como facara nas dbgrids.
Desde ja agradeço a ajuda e colaboraçao!
Obrigado
Adriano...
_________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Seg Jun 20, 2005 5:48 pm Assunto: Como deletar 3 tabelas de uma so vez? |
|
|
Ola amigos, mais uma vez estou aqui para postar minha duvida, a parte de cima pode esquecer, agora fiz uma table para incluir as sequencias e duas query para pesquisa dentro do mesmo form usando a mesma tabela
na SQL da query fiz assim:
select cf, sum (valor) + (ipi) from tbclasaida
group by cf
e no grid esta aparecendo a soma dos 2, tem como fazer separado?
Outra duvida na hora de excluir criei um botao e fiz assim:
table1.delete;
query4.refresh;
query5.refresh;
nao esta funcionando quero que ao excluir os queris manda pro dbgrid os valores corrigidos, tambem liguei os querys na datasource1 que pertence ao table1 que eh de inclusao dos dados.
Agradeço quem puder me ajudar
Adriano... _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Ter Jun 21, 2005 8:16 am Assunto: Como deletar 3 tabelas de uma so vez? |
|
|
Ola amigos, aprendi como se faz no SQL, nao tinha conhecimento de nada sobre SQL.
Antes tava assim
select cf, sum (valor) + (ipi) from tbclasaida
group by cf
e no grid esta aparecendo a soma dos 2, tem como fazer separado?
O correto eh assim: Bom pelo menos funcionou no meu programa
select cf, codfiscal, descricao, sum(valor),(ipi) from tbclasaida
group by cf, codfiscal, descricao, valor, ipi
Agora a duvida continua aqui
na hora de excluir criei um botao e fiz assim:
table1.delete;
query4.refresh; // pertecente a dbgrid2
query5.refresh; //pertencente a dbgrid3
nao esta funcionando quero que ao excluir no table, os querys atualiza no dbgrid os valores corrigidos, tambem liguei os querys na datasource1 que pertence ao table1 que eh de inclusao dos dados.
Agradeço quem puder me ajudar
Adriano...
_________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|