Announcement

Collapse
No announcement yet.

Read-Only-Datenbank

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Read-Only-Datenbank

    Hallo zusammen,

    weiss hier zufällig jemand, ob ich mit Hilfe der IBObjects-Komponenten den Read-Only-Flag einer bereits bestehenden Datenbank setzen oder unbedingt gfix oder gbak benutzen muss.

    Viele Grüße

    Uli Bosch

  • #2
    Hallo Ulrich,

    mit den IBO-Komponenten wird es nicht gehen. Eventuell besteht die Möglichkeit über die Service-API. Die Service-API wird aber von den original-IBO-Komponenten nicht unterstützt. es gibt aber die IBOAdmin-Komponenten, die allerdings nicht von Jason stammen, die genau wie die IBX-Admin Komponenten auf die Service-API aufbauen.

    Gruß

    Torste

    Comment


    • #3
      Hallo Torsten,

      vielen Dank für die Mitteilung. Ich werde mir die IBOAdmin-Komponenten mal ansehen, sonst muss ich wohl doch den Weg über gfix gehen.

      Gruss

      Ul

      Comment


      • #4
        Hallo Ulrich,

        das geht auch mit den IBO-Komponenten. Hier musst Du den Event-Handler OnCustomizeDPB von der TIB_Connection-Komponente verwenden und übergeben, dass die Datenbank auf read-only gesetzt werden soll. Hier ein bisschen Pseudoquellcode (aus dem Kopf, deshalb evtl. mit leichten Fehlern...)

        Code:
        procedure TForm1.CustomizeDPB(Sender: TIB_Connection; var BufPtr: Integer;
          var Buffer: array of Char);
        begin
          Sender.BuildDPB(BufPtr, Buffer, isc_dpb_set_db_readonly, 
            Char(isc_dpb_records);
        end;
        
        procedure TForm1.Button1OnClick(Sender: TObject);
        var
          IB_Connection: TIB_Connection;
        begin
          IB_Connection := TIB_Connection.Create(nil);
          try
            IB_Connection.OnCustomizeDPB := CustomizeDPB;
            IB_Connection.Username := 'sysdba';
            IB_Connection.Password := 'masterkey';
            IB_Connection.Server := 'localhost';
            IB_Connection.Database := 'test.fdb';
            IB_Connection.Connect;
            IB_Connection.Disconnect;
            IB_Connection.OnCustomizeDPB := nil;
          finally
            IB_Connection.Free;
          end;
        end;

        Comment

        Working...
        X