Fórum Erro de comprimento de mensagem #354670
02/03/2008
0
procedure TF_GerarBackup.BTGeraBackClick(Sender: TObject);
begin
try
if not SDArquBack.Execute then//se o usuário não informar onde será salvo o arquivo de backup
Exit; //cancela o procedimento
Log.Clear;
BTGeraBack.Enabled:=False;
Log.Items.Add(´Preparando para gerar o backup...´);
Log.Items.Add(´´);
with IBBackupService1 do
begin
DM.Conexao.Connected:=False;//desconecta da base de dados
DatabaseName:=f_backup_restore.EBase.Text;//caminho da base de dados
ServerName:=f_backup_restore.EServ.Text;//nome do servidor
BackupFile.Clear;
BackupFile.Add(SDArquBack.FileName);//adiciona o caminho do arquivo de backup escolhido pelo usuário
Protocol:=TCP;//protocolo de conexão
Params.Clear;
Params.Add(´user_name=SYSDBA´);//nome de usuário
Params.Add(´password=masterkey´);//senha do usuário
Options:=[];//limpa a propriedade option
{o bloco de if abaixo esta adicionando as opções de restauração de acordo com o que o usuário escolheu.
Após esta listagem você encontra um link para um outro artigo onde você encontra mais informações
sobre essas e outras opções de restauração}
if CBIgnoChec.Checked then
Options:=Options+[IgnoreChecksums];
if CBIgnoLimb.Checked then
Options:=Options+[IgnoreLimbo];
if not CBRecoLixo.Checked then
Options:=Options+[NoGarbageCollection];
if not CBTran.Checked then
Options:=Options+[NonTransportable];
{a propriedade verbose do TIBBackupService especifica
se durante o processo de backup será retornado para a
aplicação o detalhamento da execução}
Verbose:=CBDetalhes.Checked;
Log.Items.Add(´ Ignorar checksum: ´+BoolToStr(CBIgnoChec.Checked));
Log.Items.Add(´ Ignorar transações em limbo: ´+BoolToStr(CBIgnoLimb.Checked));
Log.Items.Add(´ Coletar lixo: ´+BoolToStr(CBRecoLixo.Checked));
Log.Items.Add(´ Formato transportável: ´+BoolToStr(CBTran.Checked));
Log.Items.Add(´ Verbose: ´+BoolToStr(CBTran.Checked));
Log.Items.Add(´ Nome do servidor: ´+ServerName);
Log.Items.Add(´´);
Active:=True;//ativa o serviço de backup, mais ainda não inicia.
Log.Items.Add(´´);
Log.Items.Add(´/***INICIO***\´);
Application.ProcessMessages;
Log.Items.Add(´´);
try
ServiceStart;//inicia o processo de backup
while not Eof do
begin
{conforme o backup vai sendo executado o nos podemos pegar os detalhes da sua execução
através da função GetNextLine}
Update;
Log.Items.Add(GetNextLine);
Log.ItemIndex:=Log.ItemIndex+1;
end;
finally
end;
Active:=False;//desativa o serviço de backup
Log.Items.Add(´´);
Log.Items.Add(´/****FIM****\´);
end;
Log.Items.Add(´´); Log.Items.Add(´´);
Log.Items.Add(´Backup concluído.´);
DM.Conexao.Connected:=True;//conecta o sistema na base de dados
BTGeraBack.Enabled:=True;
except
on E: Exception do
begin
Log.Items.Add(´Ocorreu um erro inesperado. O backup não foi concluído.´);
Log.Items.Add(´Informações da exceção:´);
Log.Items.Add(´ ´+E.Message);
DM.Conexao.Connected:=True;//conecta o sistema na base de dados
BTGeraBack.Enabled:=True;
end;
end;
end;O erro ta dando nessa linha quando vai preenchendo as linhas.
Update; Log.Items.Add(GetNextLine); Log.ItemIndex:=Log.ItemIndex+1; end;
O erro é esse [URL=http://img122.imageshack.us/my.php?image=imagemfk6.jpg][img:7d37b1538a]http://img122.imageshack.us/img122/8017/imagemfk6.th.jpg[/img:7d37b1538a][/URL]
--------------------------- Debugger Exception Notification --------------------------- Project MATERIAIS.exe raised exception class EIBInterBaseError with message ´message length error (encountered 96, expected 92)´. Process stopped. Use Step or Run to continue. --------------------------- OK Help ---------------------------
Que faço?
Estou usando FB 2.0
O componente é o IBBackupService.
Jpauloss
Curtir tópico
+ 0Posts
02/03/2008
Jpauloss
Exemplo simples que está no help
begin with IBBackupService1 do begin ServerName := ´127.0.0.1´; LoginPrompt := False; //Params.Add(´user_name=SYSDBA´); //Params.Add(´password=masterkey´); Active := True; try Verbose := True; Options := [NonTransportable, IgnoreLimbo]; DatabaseName := ´C:\Materiais\dados\MATERIAIS.FDB´; BackupFile.Add(´C:\Materiais\dados\Backup.gbk´); ServiceStart; While not Eof do Log.Lines.Add(GetNextLine); finally Active := False; end;
O erro da quando está preenchedo as linhas
ServiceStart; While not Eof do Log.Lines.Add(GetNextLine);
Gostei + 0
02/03/2008
Jpauloss
--------------------------- Debugger Exception Notification --------------------------- Project MATERIAIS.exe raised exception class EIBInterBaseError with message ´message length error (encountered 96, expected 92)´. Process stopped. Use Step or Run to continue. --------------------------- OK Help ---------------------------
Gostei + 0
03/03/2008
Jpauloss
Message length error (erro de comprimento de mensagem).
(encountered 96, expected 92) (Encontrado 96, esperrado 92)
Gostei + 0
03/03/2008
Jpauloss
Gostei + 0
10/03/2008
Jpauloss
Gostei + 0
10/03/2008
Joaoshi
http://forum.devmedia.com.br/viewtopic.php?t=93012&highlight=
foi discutido um assunto semelhante, apesar de não ter resolvido o problema do tópico, a dica me resolveu um problema parecido.
Espero ter ajudado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)