Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ådriano

data programada

Recommended Posts

Ola Gente....Gostaria que em um form o usuario coloque uma data entre o dia primeiro e o dia trinta e um e Ai todo o dia 15 por exemplo de qualquer mes o programa execute aquela função.EStou querendo colocar para compactar o banco sempre nesta data....

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você pode fazer é criar uma tela para o usuário informar o dia em que deseja q seja efetuado o backup, e no OnCreate do form principal você poderia verificar o dia atual se é igual ao dia informado, e então executar o processo de backup...

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi ....até que ai ta tudo bem o problema maior aqui agora é que eu achei na net como compactar e corrigir as tabelas o código segue abaixo:procedure TForm1.Button2Click(Sender: TObject);varArquivoMDB: string;DB: OLEVariant;Temp: string;BEGINDB := CreateOLEObject('DAO.DBEngine.35');// reparar DB.RepairDataBase(arquivoMDB);// compactar Temp := ExtractFilePath(ArquivoMDB) + 'Temp.mdb'; DB.CompactDataBase(ArquivoMDB, Temp);end;Só que toda vez ta dando falta de memoria... não tenho ideia do que acontece....este form é só um teste....para ver se fununcia no programa em que estou usando....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz algumas alterações, testa desta forma:

 

procedure TForm1.BitBtn1Click(Sender: TObject);var	db: OleVariant;	BDFull, BDBackup: string;beginBDFull:=ExtractFilePath(Application.ExeName) + 'bd1.mdb';BDBackup:=ExtractFilePath(Application.ExeName) + 'bdBackup.mdb';if FileExists(BDBackup) then	DeleteFile(BDBackup);try	db:=CreateOLEObject('JRO.JetEngine');	db.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;' +					   'Data Source=' + BDFull  +					   ';Jet OLEDB:Database Password="";',					   'Provider=Microsoft.Jet.OLEDB.4.0;' +					   'Data Source=' + BDBackup +					   ';Jet OLEDB:Database Password=""' +					   ';Jet OLEDB:Engine Type=5');	DeleteFile(BDFull);	RenameFile(BDBackup,BDFull);	CopyFile(PChar(BDFull),PChar(BDBackup),False);except	on E:Exception do		ShowMessage(E.Message);		end;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto serve para qualquer versão do office pois aqui eu uso neste banco no caso o 97 e testei e deu certo o código o que é estranho é que geralmente ele diminui o tamanho do banco e neste caso ele aumentou ele é de 33megas o q estou testando e foi parar em 42 o q sera????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alterei e escreveu Isto:Não foi Possivel executar esta operação;Os recursos desta versão não estão disponiveis em bancos de dados com formatos antigos...Esta mensagem só apareceu quando troquei o 5 pelo 4

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou olhar estranho não????? Mas qualquer coisa fica assim mesmo.....se ele não crescer muito quando tiver maior.....rsrsrsr.....desde ja agradeço....E a função de data programada pode ser assim segue abaixo:if tblCAMPODATA.Value = Date then//Mensagemisto você mesmo me passou para outra função neste Banco..será que este exemplo que você me deu serve ????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poxa vida estava vendo aqui e pensei(até q enfim...rsrsrs)posso colocar quando fecho o form para fazer esta função só que ai ele tem que desconectar o programa primeiro para depois fazer e ai ???eu sei que tem de ser o programa fechado então como faço para fazer este procedimento no mesmo programa....lembro que não uso datamodule..é pequeno então uso as tabelas conectadas direto...e ai o que você sugere faço um programa por fora ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ENTÃO EU AQUI TENHO UM FORME SÓ COM UM ADOCONECTION QUE ESTOU USANDO PARA TESTE,MAS ATÉ ESTE TA DANDO PAU EU COLOQUEI A LINHA CONEXAO.CONECT:=FALSE; DEPOIS DO PRIMEIRO BEGIN DAQUELE CODIGO QUE você ME MANDOU NESTE TOPICO...MESMO ASSIM NÃO VAI...rsrsrsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nunca fiz um programa de Backup deste tipo, mas pq você não cria um pequeno programa de backup ? No caso quando for sair do seu programa, e for dia de backup, no momento de fechar o form ele dispara este outro programinha, que somente ira fazer o backup dos dados... Assim o programa já tera sido fechado, cortando a conexão com o BD...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.