Announcement

Collapse
No announcement yet.

Paradox und Delphi: Probleme im Netzwerk

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

  • Paradox und Delphi: Probleme im Netzwerk

    Ich setze Delphi 4.0 (C/S) unter Windows NT 4.0 ein. Als "Datenbank" benutze ich Paradoxl. Eingesetzt ist das Programm in einem kleinen Netzwerk von zur Zeit nur zwei PC (beides NT 4.0 WS) Beide Rechner können problemlos auf die gemeinsamen DAten zugreifen, doch gab es zeitweise Datenverluste. Ich habe das Programm insofern geändert, dass ich nicht mehr mit der TTable-Komponente arbeite, sondern die Daten per SQL nutze. Nun hatte ich das Problem, dass beim Öffnen der Tabelle der Fehler kam, dass der Header einer Tabelle defekt war. Hier half nun nur noch die Datenrücksicherung. Wie kann es zu diesen Fehler kommen? Kann man Tabellen mit Fehlern dieser Art reparieren? Ist Paradox etwa gar nicht netzwerkfähig? Wer kann mir helfen? Es ist geplant, das Netzwerk auf 5 Workstation auszubauen und alle sollen auf die selben Daten, sowohl lesend als auch schreibend, zugreifen können.

  • #2
    Hallo!

    Wie sieht denn die BDE-Konfiguration aus? <br>
    Der Netzwerkpfad sollte bei beiden auf das gleiche Verzeichnis zeigen.
    <br>

    c

    Comment


    • #3
      Hallo,

      falls die BDE richtige konfiguriert ist, gibt es eine andere Möglichkeit. Borland hat zu diesem Problem vor einiger Zeit eine <b>Technical Information</b> (TI) veröffentlicht, die immer noch auf den Web-Seiten von Borland zu finden sein sollte:

      <i>
      Technical Information Document (TI3342)<br>
      "Index out of Date" ($2F02), "Blob has been modified" ($3302) errors with Paradox Tables<br>
      Product: BDE <br>
      Version: All <br>
      Platform: Windows 95, Windows NT, Windows 3.1</i>

      Wenn alle beteiligten Rechner unter NT laufen, wird das Problem seine Ursache im aktivierten <i>Opportunistic Locking</i> von NT haben (siehe Microsoft Knowlegde Base-Artikel Q129202).

      P.S: Die FAQ- und TI-Beiträge stehen entweder als ZIP-Archiv zum Download unter http://community.borland.com/downloads/ oder als HTMLs unter http://community.borland.com in der Community <b>Delphi</b> und dort über die Registerseite <b>FAQ</b> oder <B>TI</b> zur Verfügung

      Comment


      • #4
        Vielen Dank für die prompte Antwort, leider aknn ich das nicht sofort ausprobieren.
        Das Dokument Q129202 habe ich gelesen, bedeutet das jetzt, daß ich an den Workstation
        den Parameter UseOpportunisticLocking auf 0 (=false) setzen soll

        Comment


        • #5
          Ich habe die Erfahrung gemacht, daß bei Paradox und NT4.0 die Datenverluste auf Null gehen, wenn man anstatt mit TCP/IP als Protokoll zu arbeiten mit Netbios (NetBeui) arbeitet. Dabei ist aber sehr wichtig, daß nicht nur das Verzeichnis sonder auch der Laufwerksbuchstabe identisch sein muß in beiden BDE-Konfigurationen. Das kannst Du ja sehr leicht über Freigabe und "Netzwerklaufwerk verbinden" einstellen

          Comment


          • #6
            Hallo,
            <br><br>
            ich habe das gleiche Problem wie Wilfried Schulze, allerdings verstehe ich nur die Hälfte von dem was hier gepostet wurde. Ich habe auch für meine Abteilung eine kleine Paradox-Datenbank programmiert. Auf sie sollen 8 Rechner zugreifen können. Einige Rechner haben WinNt, andere Win2000 als OS. Ich habe die Datenbank von meinem Rechner aus (Win2000) auf ein Netzwerklaufwerk installiert, öffne ich die *.exe gibt es auch keine Probleme. Wird sie aber von anderen Rechnern aus geöffnet, kommen Fehlermeldungen oder aber sie lässt sich öffnen aber man kann keine Datensätze eingeben. Ich habe den Pfad zur *.db in der Komponente TTable eingegeben (DatabaseName->G:\online\projects).
            Ich habe auch die Komponente "Session" in das Programm eingefügt und bei NetFileDir den gleichen Pfad eingegeben, allerdings funktioniert es immer noch nicht. Die Setup-Routine beinhaltet übrigens die gesamte BDE.
            <br><br>
            Kann es vielleicht sein das ich die Applikation auf jedem Rechner installieren muss und nur die BDE und die *.db auf das Netzwerklaufwerk (G:\online\projects) legen muss?
            Kann mir da jemand weiterhelfen?
            vielen dank im vorrau

            Comment


            • #7
              Hallo,

              wenn sogar die EXE auf einem Netzlaufwerk liegt, muss <b>PrivateDir</b> auf ein lokales Verzeichnis gesetzt werden. Außerdem sollte die EXE niemals im gleichen Verzeichnis wie die Datenbankdateien liegen. Alle Clients, die im Netzwerk auf die Datenbank zugreifen (unabhängig vom Programm), müssen für alle (!) Paradox-Datenbanken die exakt gleiche NET DIR-Konfiguration verwenden. Daher verzichte ich auf die programmspezifische Konfiguration über Session (TSession), sondern konfiguriere dies fest über die <b>BDE-Verwaltung</b> (Konfiguration | Treiber | Native | Paradox | NET DIR) auf jedem Rechner. Alle Client müssen hier exakt die gleiche Zeichenkette verwenden, wobei es sich im Idealfall um das Wurzelverzeichnis eines Netzlaufwerks handelt.

              Wenn dann immer noch Probleme auftreten, ist es wichtig zu wissen, welche Fehlernummer bzw. Exception-Meldungen kommen.
              &#10

              Comment

              Working...
              X