Yedekleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Yedekleme

Mesaj gönderen NewMember »

Arkadaşlar merhaba;
Delphi 7 de geliştirdiğim projelerimi üst sürüm delhilere (Delphi XE) geçirmeye çalışıyorum.
Aşağıdaki kod çalışan kodumdu.Aslında derlemede sorun çıkmıyor.Delphi XE ve üst sürümlerde de derleniyor ancak çalışmada aşağıdaki hata mesajını veriyor.Sanırım bir şeyler eksik.Yardımcı olabilirmisiniz?
var i: Integer;
begin
BackupService1.DatabaseName := BackupDatabaseYolu;
BackupService1.BackupFile.Clear;
Memo1.Clear;
Memo1.Lines.Add('*** Veritabanı Dosyaları: ***');
Memo1.Lines.Add(BackupService1.DatabaseName);
Memo1.Lines.Add('*** Yedek Dosyaları: ***');
BackupService1.BackupFile.Add(EdYedekdata.Text);
Memo1.Lines.Add(EdYedekdata.Text);
Memo1.Lines.Add(
'==================== Yedekleme İşlemi Başladı ====================');
BackupService1.Active := True;
btnyedekle.Enabled := False;
btngeriyukle.Enabled := False;
BackupService1.ServiceStart;
while not (BackupService1.Eof) do
Memo1.Lines.Add(BackupService1.GetNextLine);
BackupService1.GetNextLine;
BackupService1.Active := False;
btngeriyukle.Enabled := True;
btnyedekle.Enabled := True;
Memo1.Lines.Add(
'==================== Yedekleme İşlemi Sona Erdi ====================');

Hata:




Resim

IBService.pas dosyasında aşağıdaki procedurle alakalı olduğunu sanıyorum.
Çünkü şöyle bir hata da veriyor.

Resim

Kod: Tümünü seç

procedure TpFIBCustomService.Attach;
var
  SPB: AnsiString;
  ConnectString: AnsiString;
begin
  CheckInactive;
  CheckServerName;

  if FLoginPrompt and not Login then
    FIBError(feOperationCancelled, [nil]);

  { Generate a new SPB if necessary }
  if FParamsChanged then
  begin
    if FSPB <> nil then
    begin
      FreeMem(FSPB);
      FSPB := nil;
    end;

    FParamsChanged := False;
    GenerateSPB(FParams, SPB, FSPBLength);
    FIBAlloc(FSPB, 0, FsPBLength);
    Move(SPB[1], FSPB[0], FSPBLength);
  end;
//  case FProtocol of
//    TCP: ConnectString := FServerName + ':gds_db'; {do not localize}
//    SPX: ConnectString := FServerName + '@gds_db'; {do not localize}
//    NamedPipe: ConnectString := '\\' + FServerName + '\gds_db'; {do not localize}
// Local: ConnectString := 'gds_db'; {do not localize}
//  end;

 case FProtocol of
    TCP: ConnectString := FServerName; {do not localize}
    SPX: ConnectString := FServerName ; {do not localize}
    NamedPipe: ConnectString := '\\' + FServerName ; {do not localize}
 Local: ConnectString := 'service_mgr'; {do not localize}
  end;


  LoadLibrary;
  if Call(FClientLibrary.isc_service_attach(StatusVector, Length(ConnectString),
                         PAnsiChar(ConnectString), @FHandle,
                         FSPBLength, FSPB), False) > 0 then
  begin
    FHandle := nil;
    IBError(FClientLibrary, Self);
  end;

  if Assigned(FOnAttach) then
    FOnAttach(Self);
{$IFNDEF NO_MONITOR}
  MonitorHook.ServiceAttach(Self);
{$ENDIF}
end;
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: Yedekleme

Mesaj gönderen ertank »

Merhaba,

Delphi XE kurulumu ile birlikte farkında olmadan Interbase Server kurmuş olabilir misiniz? Eğer öyle ise system32 dizinindeki gds32.dll dosyasının üzerine yazılmış olabilir. Bu durumda Interbase ve Firebird kurulumlarını kaldırıp Firebird'ü yeninden kurmanızı öneririm.
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Re: Yedekleme

Mesaj gönderen NewMember »

Yok interbase kurulu değil.Ayrıca müşteri makinelerinde de aynı sorun oluyor.
Cevapla