AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Paradox-Datenbanken im Netzwerk nutzen
Thema durchsuchen
Ansicht
Themen-Optionen

Paradox-Datenbanken im Netzwerk nutzen

Ein Thema von eddy · begonnen am 6. Jun 2003 · letzter Beitrag vom 13. Jun 2003
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#11
  Alt 8. Jun 2003, 19:35
Hallor r_kerber,

vielen Dank für den Link, damit haben sich gleich noch ein paar andere UZK's (= Unidentifizierte ZeichenKetten) geklärt.

Ich hab' die Seite mit DFÜ-Token und Smileys gleich mal in meine Favoriten gelegt. Werd' ich mir nie merken!

mfg
eddy
  Mit Zitat antworten Zitat
praktiker

Registriert seit: 9. Jun 2003
Ort: Hesedorf
11 Beiträge
 
#12
  Alt 9. Jun 2003, 08:00
Hallo Eddi,
Leider habe ich kein Netzwerk aufgebaut und kann meine Theorien nicht austesten. Trotzdem solltest du die nachfolgende Info mal näher anschauen.

Wenn Datensätze innerhalb eines Programmes verändert werden, werden diese erst auf der Platte gespeichert, wenn die Tabelle geschlossen wird. Die veränderten Daten werden in einem Zwischenspeicher gehalten. Vielleicht ist das ja schon der erste Ansatz für das Problem


Erzwingen kann mann diesen Vorgang auch, indem man beim Programmstart folgenden Code in sein Formular einbindet.



uses ...,bde;

type
TFormTest = class(TForm)
........
private
procedure FlashToTable(Sender:TObject; var done:boolean);
.....
end;

procedure TFormTest.flashtotable;
begin
dbiuseidletime;
done:=true;
end;


Abschließend noch im Objectinspector zur Form
eine ONCREATE Anweisung doppelt anclicken und den CODE

procedure TFormTest.FormCreate(Sender: TObject);
begin
application.onidle := FlashToTable;
....
end;

einfügen.


Jetzt speichert das Programm, wenn es nicht anderweitig beschäftigt ist die Daten aus dem Zwischenspeicher direkt auf die Platte.
  Mit Zitat antworten Zitat
Mitchl55

Registriert seit: 20. Feb 2003
Ort: Meppen
159 Beiträge
 
Delphi 7 Enterprise
 
#13
  Alt 9. Jun 2003, 12:34
@Praktiker

Genau diese Vermutung hatte ich auch. Die Tabellen werden erst in den Speicher geschrieben und wenn die Tabellen/Programm geschlossen werden, dann werden diese auch auf die Platte geschrieben! Das sieht man auch daran, das bei einem Reset während das Programm läuft alle neu eingetragenen Daten verloren gehen!

@Eddy

Ich weiß´es ja nicht genau, aber ich denke meine Lösung beschreibt Dein Problem (so wie es sich anhört) und gibt Dir die Lösung dazu!

Gruß

Mitchl
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#14
  Alt 9. Jun 2003, 17:25
Hallo Leute!

@praktiker:

Den Verdacht, daß die Zwischenspeicherung der Daten die Aktuallisierung verhindert, hatte ich auch schon.

Zu Testzwecken hatte ich DbiSaveChanges in AfterPost eingebunden. Das hat aber mein Problem nicht gelöst.

Wenn ich mir zu DBiUseIdleTime die Hilfe hole, erhalte ich folgenden Hinweis: This function is no longer supported. Use DbiSaveChanges instead.

Mit application.onidle muß ich mich noch beschäftigen. Zumindest ließe sich damit wohl der Zeitpunkt, wann die Aktuallisierungsabfrage erfolgen soll (in welcher Variante auch immer), festlegen - nämlich wenn das Programm gerade nichts macht.


@MrSpock:

Ich verwende Delphi 5 Professional, könnte das die Ursache dafür sein, daß die Variante mit "Table1.Filtered := Table1.Filtered;" bei mir nicht funktioniert? Schließlich würde diese Variante mein Problem mit dem geringsten Aufwand aus der Welt schaffen.

Die Variante mir der separaten Tabelle, ich habe sie NetCtrl genannt, ist bereits in Arbeit. Aber bevor ich da zuviel Energie 'reinstecke, wollte ich mich hier um Alternativen kümmern.


@Mitchl55:
Den Link habe ich mir angesehen, kann aber keine Verbindung zu meinem Problem herstellen. Das TForm zu schließen und neu zu generieren kommt nicht in Frage, da ja damit die gesamte Initialisierungen und aktuellen Zustände verloren gingen, alle aktuell offenen Datenbanken geschlossen und an der selben Stelle neu geöffnet werden müssen. Erscheint mir vom Zeitverhalten nicht unbedingt optimal.


@

Kann jemand etwas zu dem Zeitbedarf bzw. der Netzwerkbelastung zu den in der bereits beschriebenen Prozedur sbRefreshClick verwendeten Befehlen sagen?

Gibt es noch andere Möglichkeiten, das Updaten der Datenbank, wie von MrSpock beschrieben, zu erzwingen?

mfg
eddy
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#15
  Alt 9. Jun 2003, 17:40
Hallo eddy,

nein, ich bin mir ziemlich sicher, dass es nicht an der Version liegt. Ich denke eher, dass nach dieser Zuweisung erneut das Scroll Event erzeugt wird. Das war in meinem kleinen Testprogramm nicht der Fall. Da gibt es jetzt 2 Möglichkeiten. Die eine mit dem Schließen und Wiederöffnen der Tabelle mit einem DisableControls vorher und dem Merken des aktuellen Datensatzes, damit du ihn wieder findest, habe ich ja schon erwähnt. Die andere wäre, dass du die Zuweisung nur machst, wenn das "Tag" der Tabelle 0 ist. Vor der Zuweisung setzt du das Tag dann aber auf 1, so dass bei einer erneuten Auslösung des Scrollevents keine Endlosschleife erzeugt wird, etwa so:

Delphi-Quellcode:
if Table1.Tag = 0 then
begin
   Table1.Tag := 1;
   Table1.Filtered := Table1.Filtered;
end
else { Tag ist 1 }
   Table1.Tag := 0;
Dabei solltest du aber sicher sein, dass das Scroll Event bei der Zuweisung immer ausgelöst wird.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Mitchl55

Registriert seit: 20. Feb 2003
Ort: Meppen
159 Beiträge
 
Delphi 7 Enterprise
 
#16
  Alt 13. Jun 2003, 16:29
Hallo,...

Hab die Antwort von MrSpock ausprobiert! Funktioniert nicht ganz so wie gedacht, ist aber nah dran! Könnte es daran liegen das ich einfach das Programm zweimal gestartet habe!? Oder warum scrollt es öfter? Hab noch zu wenig Ahnung davon!

Gruß

Mitchl
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 21:28 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