Re: [delphi-br] Banco de Dados Access 97

2005-09-22 Por tôpico Ulisses
Bom dia, Cristina! Tudo bem?

Eu já havia comentado com você a respeito de compactar uma tabela do Access, 
mas acho que na época você não percebeu a importância.

De qualquer forma, estou enviando um procedure que você pode incluir no seu 
aplicativo.

Leia as observações no código, para adaptá-lo para o Access 97.

Pra executar esse procedure, o bando de dados não poderá estar sendo usado por 
ninguém.

Boa sorte.

Ulisses

procedure CompactaMDB(Const PathDb :String);
function GetADOObject(ADOClass: string): OLEVariant;
var o: OLEVariant;
begin
try
  o := CreateOLEObject(ADOClass);
except on EOleException do
end;
Result := o;
end;

var db: OleVariant;
begin
db := GetADOObject('JRO.JetEngine');
db.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;' +
 'Data Source=' + PathDb + ';Jet OLEDB:Database Password=;',
 'Provider=Microsoft.Jet.OLEDB.4.0;' +
 'Data Source=' + ExtractFilePath(PathDb) + 'novobd.mdb' +
 ';Jet OLEDB:Database Password=' +
 ';Jet OLEDB:Engine Type=5'); // 4 se for Access 97
if not DeleteFile(PathDb) then  // deleta bd antigo
  begin
  ShowMessage('Ocorreram problemas renomeando os arquivos temporários!'+ #13 + 
'A operação foi cancelada.');
  DeleteFile(ExtractFilePath(PathDb) + 'novobd.mdb');// deleta arquivos 
temporarios
  exit;
  end;
RenameFile(ExtractFilePath(PathDb) + 'novoBD.mdb', PathDb); //file://renomeia 
bd compactado
DeleteFile(ExtractFilePath(PathDb) + 'novobd.mdb');
end;

- Original Message - 
From: Cristina [EMAIL PROTECTED]
To: delphi-br@yahoogrupos.com.br
Sent: Wednesday, September 21, 2005 3:38 PM
Subject: [delphi-br] Banco de Dados Access 97


 Olá pessoal,

 Inseri em uma tabela 100.000 registros para testar a sua 
 funcionalidade, onde o tamanho do banco ficou com 37Mbytes, mas após ter 
 excluído estes 100.000 registros o tamanho do banco permaneceu o mesmo, 
 sem nenhuma alteração.
 
 Alguém sabe o que está acontecendo, tenho que fazer mais alguma 
 coisa além do Delete?
 
 -- 
 
 Atenciosamente
 
 Cristina Orthmann da Silva
 HACON Automação e Tecnologia Ltda
 Rua Lauro Linhares 589 - Bairro Trindade
 Florianópolis - SC - Brasil
 CEP 88036-001
 Fone/Fax: 55 48 333-0699
 Site: http://www.hacon.com.br/
 Email: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
 
 
 
 
 -- 
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 
 
 Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages
 
 Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]
  
 Links do Yahoo! Grupos
 
 
 
 
  
 
 


-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [delphi-br] Banco de Dados Access 97

2005-09-22 Por tôpico Cristina
Oi Ulisses,

Lembrei que havia guardado o seu email anteriormente, pois achava 
que um dia eu iria precisar, e acertei.

Já implementei e está funcionando.



Ulisses escreveu:

 Bom dia, Cristina! Tudo bem?

 Eu já havia comentado com você a respeito de compactar uma tabela do 
 Access, mas acho que na época você não percebeu a importância.

 De qualquer forma, estou enviando um procedure que você pode incluir 
 no seu aplicativo.

 Leia as observações no código, para adaptá-lo para o Access 97.

 Pra executar esse procedure, o bando de dados não poderá estar sendo 
 usado por ninguém.

 Boa sorte.

 Ulisses

 procedure CompactaMDB(Const PathDb :String);
 function GetADOObject(ADOClass: string): OLEVariant;
 var o: OLEVariant;
 begin
 try
   o := CreateOLEObject(ADOClass);
 except on EOleException do
 end;
 Result := o;
 end;

 var db: OleVariant;
 begin
 db := GetADOObject('JRO.JetEngine');
 db.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;' +
 'Data Source=' + PathDb + ';Jet OLEDB:Database Password=;',
 'Provider=Microsoft.Jet.OLEDB.4.0;' +
 'Data Source=' + ExtractFilePath(PathDb) + 'novobd.mdb' +
 ';Jet OLEDB:Database Password=' +
 ';Jet OLEDB:Engine Type=5'); // 4 se for Access 97
 if not DeleteFile(PathDb) then  // deleta bd antigo
   begin
   ShowMessage('Ocorreram problemas renomeando os arquivos 
 temporários!'+ #13 + 'A operação foi cancelada.');
   DeleteFile(ExtractFilePath(PathDb) + 'novobd.mdb');// deleta 
 arquivos temporarios
   exit;
   end;
 RenameFile(ExtractFilePath(PathDb) + 'novoBD.mdb', PathDb); 
 //file://renomeia bd compactado
 DeleteFile(ExtractFilePath(PathDb) + 'novobd.mdb');
 end;

 - Original Message -
 From: Cristina [EMAIL PROTECTED]
 To: delphi-br@yahoogrupos.com.br
 Sent: Wednesday, September 21, 2005 3:38 PM
 Subject: [delphi-br] Banco de Dados Access 97


  Olá pessoal,

  Inseri em uma tabela 100.000 registros para testar a sua
  funcionalidade, onde o tamanho do banco ficou com 37Mbytes, mas após 
 ter
  excluído estes 100.000 registros o tamanho do banco permaneceu o mesmo,
  sem nenhuma alteração.
 
  Alguém sabe o que está acontecendo, tenho que fazer mais alguma
  coisa além do Delete?
 
  --
 
  Atenciosamente
  
  Cristina Orthmann da Silva
  HACON Automação e Tecnologia Ltda
  Rua Lauro Linhares 589 - Bairro Trindade
  Florianópolis - SC - Brasil
  CEP 88036-001
  Fone/Fax: 55 48 333-0699
  Site: http://www.hacon.com.br/
  Email: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
  
 
 
 
  --
   FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 
 
  Para ver as mensagens antigas, acesse:
   http://br.groups.yahoo.com/group/delphi-br/messages
 
  Para falar com o moderador, envie um e-mail para:
   [EMAIL PROTECTED] ou [EMAIL PROTECTED]
  
  Links do Yahoo! Grupos
 
 
 
 
  
 
 


 -- 
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

 Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

 Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]



 *Yahoo! Grupos, um serviço oferecido por:*


 
 *Links do Yahoo! Grupos*

 * Para visitar o site do seu grupo na web, acesse:
   http://br.groups.yahoo.com/group/delphi-br/

 * Para sair deste grupo, envie um e-mail para:
   [EMAIL PROTECTED]
   mailto:[EMAIL PROTECTED]

 * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
   Serviço do Yahoo! http://br.yahoo.com/info/utos.html.



-- 

Atenciosamente

Cristina Orthmann da Silva
HACON Automação e Tecnologia Ltda
Rua Lauro Linhares 589 - Bairro Trindade
Florianópolis - SC - Brasil
CEP 88036-001
Fone/Fax: 55 48 333-0699
Site: http://www.hacon.com.br/
Email: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]




-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html