Aldinei Postado Julho 26, 2017 Denunciar Share Postado Julho 26, 2017 Boa tarde pessoal, Estou com problema para compactar meu BD access, estou usando essa função; if CompactAndRepair('c:\acc2000\bd\tbaccsis.mdb','c:\acc2000\bd\tbaccsisnovo.mdb') Then ok; else o erro é "voce esta tentando abrir um banco de dados que já foi aberto" Agradeço desde já a todos. Abraço //-------------------------------------------------------------------------------------- Function TFrm_LimpezaTabela.CompactAndRepair(watualMDB : String; WnovoMDB : String) : Boolean; const sProvider = 'Provider=Microsoft.Jet.OLEDB.4.0;'; var oJetEng : JetEngine; begin WatualMDB:= sProvider + 'Data Source=' + watualMDB; wnovoMDB := sProvider + 'Data Source=' + wnovoMDB; try oJetEng := CoJetEngine.Create; oJetEng.CompactDatabase(watualMDB, WnovoMDB); oJetEng := Nil; Result := True; except oJetEng := Nil; Result := False; end; end; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 26, 2017 Denunciar Share Postado Julho 26, 2017 erro é "voce esta tentando abrir um banco de dados que já foi aberto" veja se outro programa esta com o banco de dados aberto. se estiver voce deve fecha-lo abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aldinei Postado Julho 26, 2017 Autor Denunciar Share Postado Julho 26, 2017 1 minuto atrás, Jhonas disse: erro é "voce esta tentando abrir um banco de dados que já foi aberto" veja se outro programa esta com o banco de dados aberto. se estiver voce deve fecha-lo abraço OI Jhonas tudo bem, estou trabalhando em notbook sem rede, só eu usando. agora é o seguinte estou executando esse função dentro do aplicativo mas estou fechando o banco antes desse jeite. FDM_query.ado_conexao.Connected:=false; mesmo assim ele mantem aberto o BD. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 26, 2017 Denunciar Share Postado Julho 26, 2017 então procure no seu código ... ainda existe algum comando abrindo o banco de dados abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aldinei Postado Julho 26, 2017 Autor Denunciar Share Postado Julho 26, 2017 Desconectei da rede da internet com o reteador funcionou. Agora me tire só mais uma duvida eu tenho sempre que criar outro nome do BD, não pode ser mesmo ? ou tenho que renomear. ? JHonas mais uma vez muito obrigado e boa tarde. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 26, 2017 Denunciar Share Postado Julho 26, 2017 Banco de dados diferentes não podem ter o mesmo nome... voce pode colocar o nome que quiser, desde que esse nome não tenha caracteres especiais OBS: arquivos de Backup não podem ter o mesmo nome voce deve diferencia-los ... exemplo Backup_12072017.mdb Backup_13072017.mdb Backup_14072017.mdb abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Aldinei
Boa tarde pessoal,
Estou com problema para compactar meu BD access, estou usando essa função;
if CompactAndRepair('c:\acc2000\bd\tbaccsis.mdb','c:\acc2000\bd\tbaccsisnovo.mdb') Then
ok;
else o erro é "voce esta tentando abrir um banco de dados que já foi aberto"
Agradeço desde já a todos.
Abraço
//--------------------------------------------------------------------------------------
Function TFrm_LimpezaTabela.CompactAndRepair(watualMDB : String; WnovoMDB : String) : Boolean;
const
sProvider = 'Provider=Microsoft.Jet.OLEDB.4.0;';
var
oJetEng : JetEngine;
begin
WatualMDB:= sProvider + 'Data Source=' + watualMDB;
wnovoMDB := sProvider + 'Data Source=' + wnovoMDB;
try
oJetEng := CoJetEngine.Create;
oJetEng.CompactDatabase(watualMDB, WnovoMDB);
oJetEng := Nil;
Result := True;
except
oJetEng := Nil;
Result := False;
end;
end;
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.