BD Access 2000/97 - Não fecha
Estou com um problema teoricamente simples que não consigo resolver.
Desenvolvo para um CallCenter e recebo Maillings(listas de clientes a serem contactados) de uma fonte que me faz o ODIOSO favor de mandar essas listas (em Access 97) sem padrão, ou seja, cadavez que recebo o mdb ele tem nomes de campos e formatações de dados dentro dele diferentes.
Então criei um programa que me permite ler a estrutura do mdb original, criar uma estrutura como eu bem quizer e transferir os dados no formato que eu preciso, concatenando 1 ou + campos ou não.
Até aí tudo bem, o sistema está rodando que é uma beleza, mas pretendo compactar o mdb criado após sua geraçãode forma automática e pelo Delphi. Tenho a função e ela funciona muito bem, porém preciso fechar o mdb que criei antes de poder compactá-lo e é aí que o problema ocorre.
Uso os componentes ADOQuery, ADOConnection, JetEngine(DDL) e ADOCommand e ADOXCatalog(DDL). Fecho todos com Close (tb já tentei o :?: Active :?: ), disconecto o ADOXCatalog(só por segurança), dou um ProcessMessages para atualizar(só por segurança) e o mdb continua aberto :!: :!: .
Não sei mais o que faço, tentei de todos os jeitos que conheço e não deu certo, por isso estou recorrendo aos camaradas de profissão. Quem puder me dar uma luz eu agradeço.[color=darkblue:47feeca3fd][/color:47feeca3fd]
Desenvolvo para um CallCenter e recebo Maillings(listas de clientes a serem contactados) de uma fonte que me faz o ODIOSO favor de mandar essas listas (em Access 97) sem padrão, ou seja, cadavez que recebo o mdb ele tem nomes de campos e formatações de dados dentro dele diferentes.
Então criei um programa que me permite ler a estrutura do mdb original, criar uma estrutura como eu bem quizer e transferir os dados no formato que eu preciso, concatenando 1 ou + campos ou não.
Até aí tudo bem, o sistema está rodando que é uma beleza, mas pretendo compactar o mdb criado após sua geraçãode forma automática e pelo Delphi. Tenho a função e ela funciona muito bem, porém preciso fechar o mdb que criei antes de poder compactá-lo e é aí que o problema ocorre.
Uso os componentes ADOQuery, ADOConnection, JetEngine(DDL) e ADOCommand e ADOXCatalog(DDL). Fecho todos com Close (tb já tentei o :?: Active :?: ), disconecto o ADOXCatalog(só por segurança), dou um ProcessMessages para atualizar(só por segurança) e o mdb continua aberto :!: :!: .
Não sei mais o que faço, tentei de todos os jeitos que conheço e não deu certo, por isso estou recorrendo aos camaradas de profissão. Quem puder me dar uma luz eu agradeço.[color=darkblue:47feeca3fd][/color:47feeca3fd]
Paulocesar1301
Curtidas 0
Respostas
Aroldo Zanela
01/02/2004
Colega,
Já tentou fechar a conexão (ADOConnection)?
Já tentou fechar a conexão (ADOConnection)?
GOSTEI 0
Ildefonso
01/02/2004
Oi...
Além de ADOConnection.Close, se já não deu certo, experimente usar a mesma conexão para abrir um outro banco de dados ´temporário´.
Além de ADOConnection.Close, se já não deu certo, experimente usar a mesma conexão para abrir um outro banco de dados ´temporário´.
GOSTEI 0
Paulocesar1301
01/02/2004
SOCORRO! Já tentei isso tb e não dá certo. Vocês acham que seria melhor criar um outro executável que compactasse o mdb após a finalização do sistema principal, uma vez que os bsncos só fecham após o sistema finalizar.
GOSTEI 0