Perguntas sobre o Access

Delphi

22/12/2003

Olá.

Estou para fazer uma aplicação simples para ser distribuída pela internet, mas não gostaria de usar o Paradox, pois além da perda dos índices é necessário o BDE. Vou usar os componentes ADO.

Esta aplicação deve poder rodar em uma rede com até 5 máquinas.
Gostaria de saber se o Access 97 é ´confiável´ e como fazer para compactar e restaurá-lo via programação.

Agradeço quem puder responder.

Valeu.


Casetek

Casetek

Curtidas 0

Respostas

Einstein

Einstein

22/12/2003

é confiavél tenho aplicçòes com tabelas de 50000 registros.

pra reindexar e compactar:

Uses
comobj, db, dbtables;

procedure TFormReindexar.Button1Click(Sender: TObject);
var
dao: OLEVariant;
begin
try
Panel1.Caption:=´Compactando Tabela´;
Panel1.Repaint;
dao := CreateOleObject(´DAO.DBEngine.36´);
dao.CompactDatabase(extractfiledir(Application.ExeName)+´\banco.mdb´, extractfiledir(Application.ExeName)+´\banco2.mdb´,´´,0,´;pwd=1203583´);
Panel1.Caption:=´Apagando Arquivo Temporário´;
Panel1.Repaint;
if FileExists(extractfiledir(Application.ExeName)+´\banco2.mdb´) then DeleteFile(extractfiledir(Application.ExeName)+´\banco.mdb´);
Panel1.Caption:=´Renomeando Arquivo´;
Panel1.Repaint;
if FileExists(extractfiledir(Application.ExeName)+´\banco2.mdb´) then
RenameFile(extractfiledir(Application.ExeName)+´\banco2.mdb´,extractfiledir(Application.ExeName)+´\banco.mdb´);
Panel1.Caption:=´Arquivo Banco.mdb Compactado´;
Panel1.Repaint;
except
panel1.caption:=´Ocorreu um Erro durante a compactação´;
end;
DataModule1.ADOConnection1.Connected:=true;


GOSTEI 0
Ilanocf

Ilanocf

22/12/2003

Olá Einstein,

Alterei o seu código para:

[b:dc0a75a0df][color=red:dc0a75a0df]procedure TFrmCompactar.BtnCompactarClick(Sender: TObject);
var
dao: OLEVariant;
begin
try
Panel1.Caption:=´Compactando Tabela ´;
Panel1.Repaint;
dao := CreateOleObject(´DAO.DBEngine.36´);
dao.CompactDatabase(extractfiledir(Application.ExeName)+´\Arquivos\Dados\Dados.mdb´, extractfiledir(Application.ExeName)+´\Arquivos\Dados\Dados_2.mdb´,´´,0,´;pwd=1203583´);
Panel1.Caption:=´Apagando Arquivo Temporário ´;
Panel1.Repaint;
if FileExists(extractfiledir(Application.ExeName)+´\Arquivos\Dados\Dados.mdb´) then DeleteFile(extractfiledir(Application.ExeName)+´\Arquivos\Dados\Dados_2.mdb´);
Panel1.Caption:=´Renomeando Arquivo ´;
Panel1.Repaint;
if FileExists(extractfiledir(Application.ExeName)+´\Arquivos\Dados\Dados.mdb´) then
RenameFile(extractfiledir(Application.ExeName)+´\Arquivos\Dados\Dados.mdb´,extractfiledir(Application.ExeName)+´\Arquivos\Dados\Dados_2.mdb´);
Panel1.Caption:=´Arquivo Banco.mdb Compactado ´;
Panel1.Repaint;
except
panel1.caption:=´Ocorreu um Erro durante a compactação ´;
end;
DMDados.CONEXAO.Connected:=true;

end;[/color:dc0a75a0df][/b:dc0a75a0df]

Acrescentei na Uses: [b:dc0a75a0df]comobj, db, dbtables[/b:dc0a75a0df]

Mas não está compactando.
O meu BD está no diretório: [b:dc0a75a0df][color=blue:dc0a75a0df]C:\Arquivos\Dados\Dados.mdb[/color:dc0a75a0df][/b:dc0a75a0df]

O q pode estar errado? Por favor, me ajude! Utilizo Access 97 com Delphi 5.0.

O erro q está ocorrendo é este: [b:dc0a75a0df][color=red:dc0a75a0df]Project Arquivos.exe raised exception class EOleSysError with message ´Seqüência de classe inválida´.[/color:dc0a75a0df][/b:dc0a75a0df] Mas nenhuma linha é selecionada.


Grato,

Ilano.


GOSTEI 0
POSTAR