Announcement

Collapse
No announcement yet.

Interbase-Treiber für D4

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

  • Interbase-Treiber für D4

    Hallo,<br>
    ich möchte auf eine Interbase DB zugreifen. Wenn ich in der BDE einen neuen Alias anlegen möchte, dann gibt es keinen Typ Interbase bei mir, den ich angeben kann. Unter Konfiguration-->Treiber->Native in der BDE sind bei mir nur Paradox, DBase, FoxPro und MSAccess eingetragen.<br><br>
    Wie kann ich einen Interbase-Treiber installieren?<br>
    <br>
    mfg und Danke Alex.

  • #2
    Hallo,

    welche Version von Delphi 4 wird verwendet? Ab der Professional-Version sollte der BDE-Link INTRBASE vorhanden sein

    Comment


    • #3
      Hallo Herr Kosch,
      ich verwende leider die Standard Version. Kann man den BDE-Link nachträglich installieren

      Comment


      • #4
        Ich habe es jetzt schon selbst geschafft den BDE-Link einzufügen. <br>Nun erhalte ich allerdings noch folgende Fehlermeldung: "Unsupported on-disk structure for file C:\DB\SRCARC.GDB; found 9, support 10". Ich denke das liegt daran, dass ich IB6 installiert habe und nun die Datei SRCARC.gdb neu erzeugt werden muss.
        Jedenfalls steht in den Release Notes:<p>
        "New On-Disk Structure (ODS)
        InterBase 6 databases stores data using the On-Disk Structure (ODS) version 10, which
        is required to use delimited IDs, exact numerics, and SQL DATE, TIME, and TIMESTAMP
        datatypes.
        IMPORTANT InterBase 6 servers can connect only to ODS version 10 databases, and InterBase 5
        servers can connect only to databases with an ODS version of 9 or 8. See the section on
        Migration in Getting Started for more information and for how to make existing tables
        compatible with this new ODS."</p><p>
        Wissen sie was ich an dem Script CreateDB.sql ändern muss, damit ich die Beispiele aus ihrem Buch nutzen kann?</p&gt

        Comment


        • #5
          Hallo,

          nur dann, wenn man gleich am Anfang die Setups zum InterBase 6 heruntergeladen und installiert hat, kann der InterBase 6 parallel auf 5.x- und 6.0-Datenbanken zugreifen. In der von Borland nun bereitgestellten neuen InterBase 6-Version ist der Zugriff auf "alte" 5.x-Datenbanken <b>nicht</b> mehr möglich, so dass für die Übernahme der Altdaten folgendes notwendig wird: <br>
          1. Backup im transportablen Format mit der Version 5.x anlegen <br>
          2. InterBase 5.x deinstallieren <br>
          3. InterBase 6 installieren <br>
          4. Restore des Datenbankbackups, wobei der 6er-Server die erwartete Dateistruktur ODS 10 anlegt.

          Die InterBase 6-Datenbank kann auch neu über das folgende Script angelegt werden:
          <pre>
          /*************************************************
          /* Master-Script fuer die IBSrcArc-Datenbank */
          /*----------------------------------------------*/
          /* Version 1.6 vom 15.08.2000 */
          /************************************************/

          SET NAMES ISO8859_1;

          /* Datenbank erzeugen */

          CREATE DATABASE 'C:\EK2000\Ibx\Database\SRCARC6.GDB'
          USER 'SYSDBA' PASSWORD 'masterkey'
          DEFAULT CHARACTER SET ISO8859_1;

          /* Domains der Datenbank festlegen */

          CREATE DOMAIN TIdNr AS INTEGER NOT NULL;

          CREATE DOMAIN TProjektName AS VARCHAR(30) CHECK(VALUE LIKE '%.DPR') NOT NULL;

          CREATE DOMAIN TFileName AS VARCHAR(50) NOT NULL COLLATE DE_DE;

          CREATE DOMAIN TDatum AS DATE DEFAULT 'NOW' NOT NULL;

          CREATE DOMAIN TDelphiVersion AS SMALLINT NOT NULL
          CHECK (VALUE In (1,2,3,4,5,6));

          CREATE DOMAIN TProjektPfad AS VARCHAR (255) NOT NULL COLLATE DE_DE;

          CREATE DOMAIN TBoolean AS CHAR(1) NOT NULL CHECK (VALUE IN ('J','N'));

          CREATE DOMAIN TTextBLOB AS BLOB SUB_TYPE 1;

          CREATE DOMAIN TBinBLOB AS BLOB SUB_TYPE 0;

          /* Generatoren festlegen */

          CREATE GENERATOR Gen_ProNr;
          SET GENERATOR Gen_ProNr TO 1000;

          CREATE GENERATOR Gen_VerNr;
          SET GENERATOR Gen_VerNr TO 1;

          CREATE GENERATOR Gen_FileNr;
          SET GENERATOR Gen_FileNr TO 1;

          /* Tabellen */

          CREATE TABLE ProMain (
          ProNr TIdNr PRIMARY KEY,
          ProDatum TDatum,
          ProName TProjektName,
          ProPfad TProjektPfad,
          DVersion TDelphiVersion,
          Abschluss TBoolean,
          Bemerkung TTextBLOB );
          CREATE UNIQUE INDEX IdxProName ON ProMain(ProName);

          CREATE TABLE ProVer (
          VerNr TIdNr PRIMARY KEY,
          ProNr TIdNr,
          VerDatum TDatum,
          Abschluss TBoolean,
          InfoTxt VARCHAR(50) COLLATE DE_DE,
          FOREIGN KEY (ProNr) REFERENCES ProMain );
          CREATE INDEX IdxVerDatum ON ProVer(VerDatum);

          CREATE TABLE ProFiles (
          FileNr TIdNr PRIMARY KEY,
          VerNr TIdNr,
          FileName TFileName,
          FileTyp CHAR(3),
          FileSize INTEGER NOT NULL,
          FileDate TDatum,
          FileData TBinBLOB,
          FOREIGN KEY (VerNr) REFERENCES ProVer );

          COMMIT WORK;
          SET TERM ^ ;

          /* Trigger */

          CREATE TRIGGER Set_ProNr FOR ProMain BEFORE INSERT AS
          BEGIN
          IF (NEW.ProNr IS NULL) THEN NEW.ProNr = GEN_ID(Gen_ProNr,1);
          END
          ^

          CREATE TRIGGER Set_VerNr FOR ProVer BEFORE INSERT AS
          BEGIN
          IF (NEW.VerNr IS NULL) THEN NEW.VerNr = GEN_ID(Gen_VerNr,1);
          END
          ^

          CREATE TRIGGER Set_FileNr FOR ProFiles BEFORE INSERT AS
          BEGIN
          IF (NEW.FileNr IS NULL) THEN NEW.FileNr = GEN_ID(Gen_FileNr,1);
          END
          ^

          /* Stored Procedures */

          CREATE PROCEDURE DEL_PROFILES (IVERNR INTEGER) AS
          BEGIN
          DELETE FROM PROFILES
          WHERE VerNr = :IVERNR;
          END
          ^

          CREATE PROCEDURE DEL_VERNR (IVERNR INTEGER) AS
          BEGIN
          DELETE FROM PROVER WHERE VERNR = :IVERNR;
          END
          ^

          CREATE PROCEDURE GET_PROJNR
          RETURNS (ProjNr INTEGER) AS
          BEGIN
          ProjNr = GEN_ID(Gen_ProNr,1);
          END
          ^

          CREATE PROCEDURE GET_VERNR
          RETURNS (VerNr INTEGER) AS
          BEGIN
          VerNr = GEN_ID(Gen_VerNr,1);
          END
          ^

          CREATE PROCEDURE INS_PROVER (IPRONR INTEGER,STXT VARCHAR(50)) AS
          BEGIN
          INSERT INTO PROVER (PRONR,VERDATUM,ABSCHLUSS,INFOTXT)
          VALUES (:IPRONR,'NOW','N',:STXT);
          END
          ^
          </pre&gt

          Comment


          • #6
            <pre>
            CREATE PROCEDURE SET_PROVEREXPORT (IVERNR INTEGER) AS
            BEGIN
            UPDATE PROVER SET ABSCHLUSS = 'N'
            WHERE VerNr = :IVERNR;
            END
            ^

            CREATE PROCEDURE SET_PROVERIMPORT (IVERNR INTEGER) AS
            BEGIN
            UPDATE PROVER
            SET ABSCHLUSS = 'J',
            VERDATUM = (SELECT MAX(FileDate) FROM ProFiles WHERE VerNr = :iVerNr)
            WHERE VerNr = :iVerNr;
            END
            ^

            SET TERM ; ^

            COMMIT WORK;

            /* ROLE für den regulären Benutzer anlegen */

            CREATE ROLE Benutzer;
            COMMIT WORK;

            /* Rechte für die ROLE "Benutzer" vergeben */

            GRANT ALL ON ProMain TO Benutzer;
            GRANT ALL ON ProVer TO Benutzer;
            GRANT ALL ON ProFiles TO Benutzer;
            GRANT EXECUTE ON PROCEDURE DEL_PROFILES TO Benutzer;
            GRANT EXECUTE ON PROCEDURE DEL_VERNR TO Benutzer;
            GRANT EXECUTE ON PROCEDURE GET_PROJNR TO Benutzer;
            GRANT EXECUTE ON PROCEDURE GET_VERNR TO Benutzer;
            GRANT EXECUTE ON PROCEDURE INS_PROVER TO Benutzer;
            GRANT EXECUTE ON PROCEDURE SET_PROVEREXPORT TO Benutzer;
            GRANT EXECUTE ON PROCEDURE SET_PROVERIMPORT TO Benutzer;

            COMMIT WORK;

            /* Zuordnung der Benutzer zur ROLE (z.Zt. auskommentiert) */

            GRANT Benutzer TO SYSDBA;

            COMMIT WORK;
            </pre&gt

            Comment


            • #7
              Wir haben zur Zeit das gleiche Problem: Trotz installiertem Delphi 5 Enterprise Version gibt es in der BDE auf einem PC keinen SQL Interbase Link mehr. Auch das einspielen der neuste BDE von Borlands Webside brauchte kein Besserung. Können sie mir verrraten, wie sie damals den BDE Link hinzugefügt haben?

              Außerdem würde ich gerne wissen, wie man per Installationscript beim Kunden den nativen BDE Link installieren kann. In einem TI von Borland stand, daß dies mit dem mitgelieferten InstallShield ab der Professional Version möglich sein soll. Auf einem (anderen) korrekt installierten PC zeigte InstallShield dann auch tatsächlich die Möglichkeit an den InterBase SQL Link mit zu installieren, nur leider ist er nach dem Ausführen der Installation trotzedme nicht verfügbar.

              Über Hinweise wäre ich sehr dankbar

              Comment

              Working...
              X