AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Delphi 3 und dbase-Dateien im Netzwerk, Datensätze fehlen
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 3 und dbase-Dateien im Netzwerk, Datensätze fehlen

Ein Thema von drigger · begonnen am 21. Apr 2008 · letzter Beitrag vom 26. Apr 2008
Antwort Antwort
drigger

Registriert seit: 21. Apr 2008
2 Beiträge
 
#1

Delphi 3 und dbase-Dateien im Netzwerk, Datensätze fehlen

  Alt 21. Apr 2008, 11:47
Datenbank: dbase • Version: III • Zugriff über: BDE
Hallo,

kurz vorab: Ich hab die Suchfunktion schon erfolgreich gequält und erfahren dass dbase und BDE im Netzwerk nicht so das wahre sind. Eine Lösung für mein Problem hab ich leider dennoch nicht gefunden. Wäre nett, wenn mir hier jemand weiterhelfen könnte.

Mein Problem:
Wir haben in unserem Verein ein Uraltprogramm, geschrieben in Delphi 3, welches im Netzwerk probleme macht und da der ursprüngliche Entwickler nicht mehr zur Verfügung steht, hab ich die tolle Aufgabe nun den Fehler zu suchen

Folgende Situation:
Das Programm läuft auf zwei Rechnern, die beide in eine dbase-Datei Daten mittels TTable und "appendrecord" Daten schreiben. Die Datei liegt auf dem einen Rechner, das Verzeichnis ist für den anderen Rechner freigegeben und der greift so auf die selbe Datei zu.

Das Problem ist nun, dass die Datensätze, die das Programm schreibt auf dessen Rechner die Datendatei liegt alle da sind. Die Datensätze, die vom verbundenen Rechner geschrieben werden, sind unvollständig. Komischerweise ist es auch nicht so, dass alle Datensätze fehlen, sondern es werden einige Datensätze geschrieben (so ca. 7%).

Im Einplatzbetrieb funktioniert das Programm tadellos. Wenn ich das, was ich im Netz gefunden habe, richtig interpretiere, müsste das Programm dann doch eigentlich auch problemlos im Netzwerkbetrieb laufen, da die BDE sich um das Locking usw. kümmert. ISt das richtig?

Ich hab zu dem Programm auch eine rudimentäre Doku gefunden, in der steht, dass in der BDE Konfiguration bei den dbase-Dateien als BatchCount der Wert 1 eingetragen sein soll. Das ist aber der Fall.

Auch funktionieren die Auswertungen usw. von beiden Rechnern problemlos. Der grundlegende Datenzugriff scheint also zu funktionieren, es scheint so, dass es nur ein Problem beim Schreiben der Daten in die Datei gibt.

Ich hab leider keine Ahnung, wo ich da ansetzen kann.
Sicherlich wäre es am sinnvollsten, das ganze auf SQL umzustellen, aber die Arbeit wollte ich mir eigentlich ersparen, weil dann muss ich die ganzen Auswertungen ja auch neu machen
Vor allem bin ich auch nicht so die Leuchte in Delphi, sondern bin die arme Sau, die früher mal was in Pascal gemacht hat und wurde deshalb als Opfer auserkoren.

Nach einem ersten Blick in den Sourcecode hab ich den Eindruck, dass dies vermutlich früher schon mal probleme gemacht haben muss, weil nach jedem "Appendrecord" wird die Tabelle geschlossen ("zeiten.close") und neu geöffnet ("zeiten.open"). Ich denke das müsste doch aber trotz dieser gewöhnungsbedürftigen Programmierung funktionieren, weil bei einem Close müssten doch alle Daten, die noch irgendwo in einem Cache oder ähnlichem sind, geschrieben werden. Oder etwa nicht?

Hat jemand eine Idee, an was dieses Problem liegen kann? Wenn ich das mit möglichst wenig Änderungen am bestehenden Programm oder vielleicht nur durch Konfiguration in den Griff kriegen könnte wäre das toll.

Gruß

drigger

Ach so:
Der Verein hat leider nur eine Lizenz für Delphi 3 und ist wie üblich chronisch Klamm bei Kasse. Ein Upgrade auf eine höhere Delphi-Version oder kostenpflichtige Komponenten werden daher wohl nicht möglich sein ...
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Delphi 3 und dbase-Dateien im Netzwerk, Datensätze fehle

  Alt 21. Apr 2008, 12:04
Stell doch auf Advantage um. Das sind nur minimale Änderungen (es gibt TAdsConnection, TAdsTable, TAdsQuery) und die lokale Version(netzwerkfähig, aber auf max. 5 User eingeschränkte) ist kostenlos, stabil und sehr schnell.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Delphi 3 und dbase-Dateien im Netzwerk, Datensätze fehle

  Alt 21. Apr 2008, 12:10
Hallo,

unter google "bde peer networking" findest du einige Infos zur Konfiguration.

Nur kurz:

1. Netzlaufwerk
Die Clients müssen beide das gleiche Netzlaufwerk "sehen".
Client 1 (wo die DB ist), muss also auch ein Netzlaufwerk (z.B. Z) haben.
Das geht entweder per subst oder net use (ab NT)

Endergebnis:
Client 1: z:\data
Client 2: z:\data


2. Puffer
nach dem Schreiben Table.FlushBuffers = DbiSaveChanges(Table.Handle)
vor dem Lesen Table.Refresh


3. andere DB jaja, musste sein


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Delphi 3 und dbase-Dateien im Netzwerk, Datensätze fehle

  Alt 21. Apr 2008, 12:11
Zitat von drigger:
Im Einplatzbetrieb funktioniert das Programm tadellos. Wenn ich das, was ich im Netz gefunden habe, richtig interpretiere, müsste das Programm dann doch eigentlich auch problemlos im Netzwerkbetrieb laufen, da die BDE sich um das Locking usw. kümmert. ISt das richtig?
Eigentlich, jedoch ist die BDE im Kern auf das (Sperr-)Verhalten der (nicht mehr oft anzutreffenden) Novel-Server ausgelegt und kommt nicht mit dem Zurecht was Windows seit 2000 als Sperrverhalten hat.
Die beste Sinnvolle Lösung ist das Programm BDE-Los umzubauen. Sei es nun mit alternativen dBase-Zugriffskomponenten oder günstige/kostenlose SQL Server (Firebird, ...). Falls du keine Kaufkomponenten einsetzt kannst du auch versuchen mit dem kostenlosen Turbo Explorer dein Projekt zum laufen zu bekommen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
NormanNG

Registriert seit: 1. Feb 2006
294 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Delphi 3 und dbase-Dateien im Netzwerk, Datensätze fehle

  Alt 21. Apr 2008, 12:15
Hi,

evtl. liegt die "Netzwerksteuerungsdatei" der BDE des "CLient"-Rechners nicht auf dem gleichen Ort wie die des "Servers".
Kann mit der BDE-Verwaltung unter Konfiguration/Treiber bei der Eigenschaft "NET DIR" eingestellt werden.
Gruß
Norman
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Delphi 3 und dbase-Dateien im Netzwerk, Datensätze fehle

  Alt 21. Apr 2008, 12:30
In der vorherigen Firma, wo ich gearbeitet habe, hat es auch immer Probleme mit BDE gegeben.

Da waren dann immer diese beiden Stichworte ganz aktuell:
- DbiSaveChanges
- "NET DIR"

Aber wie das im Detail war, weiss ich nicht mehr. Ich will es auch nicht mehr wissen.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Delphi 3 und dbase-Dateien im Netzwerk, Datensätze fehle

  Alt 21. Apr 2008, 12:38
Hallo,

NET DIR ist Paradox, nicht DBase.
Unter DBase wird direkt der Datensatz gelockt.

DbiSaveChanges ohne Table.Refresh bringt übrigens nur halb was.
Ah so, direkt nach Table.Open ist ein Refresh nat. sinnlos.


Haaach, die gute alte Zeit.


Heiko
Heiko
  Mit Zitat antworten Zitat
drigger

Registriert seit: 21. Apr 2008
2 Beiträge
 
#8

Re: Delphi 3 und dbase-Dateien im Netzwerk, Datensätze fehle

  Alt 26. Apr 2008, 22:01
Hallo,

vielen Dank für Eure Antworten.

TurboDelphi wäre schön gewesen, aber das Programm benutzt zur Ansteuerung der Lichtschranke eine externe Komponente und die kann ich da nicht einbauen - leider.

Bei Advantage bin ich aber fündig geworden. Der Local Server reicht uns dicke und die haben sogar noch eine Komponente für das Uralt-Delphi 3 - super!!

Umstellung war dank der mitgelieferten Komponente eine Sache von grad mal einer dreiviertel Stunde (Datenbanken konvertieren, im Code TTAble durch TADSTable ersetzen und ein bisschen feintuning) und so wie ich sehe, funktioniert es perfekt.

Vielen Dank noch mal und viele Grüße

drigger
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Delphi 3 und dbase-Dateien im Netzwerk, Datensätze fehle

  Alt 26. Apr 2008, 22:15
Zitat von drigger:
TurboDelphi wäre schön gewesen, aber das Programm benutzt zur Ansteuerung der Lichtschranke eine externe Komponente und die kann ich da nicht einbauen - leider.
Gibt es keine Delphi 2006-Version dieser Komponente und habt ihr keinen SourceCode dafür?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz