Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
sherlogg
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Mo, 19. Nov 2012 14:59
Wohnort: Mühlheim am Main
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von sherlogg »

Hallo Zusammen,

ich habe mich dazu entschlossen, ein eigen genutztes Clipper-Programm (mehrmals die Woche) auf GUI umzuschreiben. Das mache ich aktuell mit VxH. Nun bin ich sicher kein OOP Crack, aber eigentlich auch kein blutiger Anfänger mehr (ohne euch mit meiner Vita zu strapazieren, habe ich mit Clipper schon 1986 gearbeitet und mit XBase++ und VxH habe ich auch schon etwas gemacht).

Nun ist es ja so, dass es, um DBFs innerhalb des Programmes adäquat zu öffnen, ein anderes Vorgehen zu beachten gibt (zumindest sehe ich das aktuell so).

Beispiel
Ich öffne in einem Programmteil "Grunddaten" eine Parameter.dbf (mit einer dazu gehörenden DBT). Wenn ich nun diesen Programmteil nochmals starte, kommen sich die Satzzeiger ins Gehege. Nun habe ich natürlich schon einige Ideen (mehr oder weniger aufwändig), um die Zugriffe zu organisieren, aber vielleicht übersehe ich ein elementares Vorgehen.

Wie organisiert ihr Zugriffe auf eure DBFs? Ist Threading das Geheimnis?

Ich hoffe, mein Anliegen ist nicht zu weit unter eurem Niveau.

LG, Dieter
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von Jan »

Dieter,

VxH: Ist das harbour? Kenne ich mich nicht mit aus, dürfte aber sehr anders laufen als in Xbase++. Wenn das wirklich harbour ist sollte das Thema besser in das entsprechende Unterforum verschoben werden damit jeder weiß, worüber wir reden. Und da nichts durcheinander wirbelt.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von Tom »

Hallo, Dieter.

Wenn Du dieselbe Tabelle in unterschiedlichen Modulen öffnest, kommen sich die Satzzeiger ohnehin nicht ins Gehege, denn jede Workarea verwaltet ihre Pointer selbst. Wenn ich also KUNDEN.DBF in Modul A und in Modul B (unter verschiedenen Aliasen) geöffnet habe, kommen die sich nicht ins Gehege. Anders wäre das nur, wenn Du alle Tabellen einmalig bei Programmstart öffnest, wie das zu Clipper-Zeiten oft gemacht wurde, und dann in verschiedenen Modulen in den Workareas herumstocherst. Der Pointer, den Du auf diese Weise an einer Stelle bewegst, bewegt sich für die andere mit. Es ist dieselbe Workarea. Schritt eins wäre also, Tabellen jeweils im Modul zu öffnen, nicht global.

Schritt zwei bringt Zusatzbenefit. Wenn Du Module in Threads laufen lässt, sind die Workareas gekapselt. Das heißt, dass es sich verhält, als würdest Du das an unterschiedlichen Arbeitsplätzen tun oder die App mehrfach auf einem Arbeitsplatz öffnen. Code, der in einem Thread läuft, verhält sich fast wie eine eigene Programminstanz, einfach gesagt. Das heißt, dass man sogar dieselbe Tabelle unter dem selben Alias mehrfach öffnen kann, indem man Modul A mehrfach startet (oder in Modul B den selben Alias verwendet), denn die sehen sich nicht. Workareas sind threadlokal. USE KUNDEN ALIAS "kunden" NEW kann auf diese Weise beliebig oft ausgeführt werden, solange es jeweils in einem neuen Thread geschieht. Du kannst Deinen Anwendern auf diese Weise die Möglichkeit bieten, z.B. eine Kundenverwaltung mit allen Funktionalitäten mehrfach aufzurufen, ohne dass sich etwas beharkt.

Also. 1. (Pflicht): Tabellen nicht global öffnen, sondern im Modul, und beim Beenden schließen. 2. (Kür): Module in Threads laufen lassen.
Herzlich,
Tom
Benutzeravatar
sherlogg
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Mo, 19. Nov 2012 14:59
Wohnort: Mühlheim am Main
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von sherlogg »

Jan hat geschrieben: Di, 26. Mai 2020 12:48 Dieter,

VxH: Ist das harbour?

Jan
Hallo Jan,

VxH ist Visual xHarbour und die Datenbankzugriff sind dort genauso geregelt, wie es unter Clipper der Fall war und wie es auch unter XBase++ durchgeführt werden kann.

Aber ich habe natürlich nichts gegen eine Verschiebung des Themas.

Gruß, Dieter
Benutzeravatar
sherlogg
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Mo, 19. Nov 2012 14:59
Wohnort: Mühlheim am Main
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von sherlogg »

Tom hat geschrieben: Di, 26. Mai 2020 12:52 Hallo, Dieter.

...

Also. 1. (Pflicht): Tabellen nicht global öffnen, sondern im Modul, und beim Beenden schließen. 2. (Kür): Module in Threads laufen lassen.
Hallo Tom,

vielen Dank für Deine umfangreichen Auführungen.

LG, Dieter

P.S. ich öffnen nicht global (war ich nie ein Freund von), sondern immer nur explizit im Programmteil.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von Jan »

Hallo Dieter,

da ich harbour nicht kenne weiß ich nicht, ob der mit den dbf genau so umgeht wie Clipper oder Xbase++. Die haben ja auch ein ganz anderes Datenbanktreiber-Modell. Und bei den Threads weiß ich überhaupt nicht, wie das dort läuft.

Ansonsten kann ich nur unterstreichen, was Tom sehr ausführlich und eindeutig geschrieben hat. Ich selber arbeite da grundsätzlich mit Alias-Zugriffen, um das sauber zu regeln. Und in Threads ist das ohnehin anders (unter Xbase++, Clipper kannte das ja noch nicht). Wobei ich unter Threads inzwischen nicht mehr grundsätzlich beim Beenden des Threads die dbf alle schließe. Sondern im nächsten Durchlauf schaue, ob die schon geöffnet sind. Spart viel Öffnen und Schließen, wenn in dem Thread ohnehin immer das Gleiche passiert.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
sherlogg
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Mo, 19. Nov 2012 14:59
Wohnort: Mühlheim am Main
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von sherlogg »

Hallo Zusammen,

nochmals vielen Dank für die Antworten. Ich bin ein gutes Stück weiter gekommen.

Ich bin eigentlich kein Mensch, der sehr schnell den Honigtopf zur Hand nimmt, aber ich muss euch auch mal sagen, dass dies hier ein wirklich gutes Forum ist (ich lese auch im stillen sehr häufig mit). Egal was für eine Frage gestellt wird, man hat immer den Eindruck das man ernst genommen wird. Keine herablassenden Bemerkungen. Das ist in der heutigen Zeit sehr selten geworden.

Also nochmals Danke.

LG, Dieter
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von Manfred »

Hallo Dieter,
und wenn Du irgendwann mal das Glück hast zu den jährlichen Treffen zu kommen, dann erlebst Du auch noch einen großen Teil der Leute hier live und amüsierst Dich auch noch kräftig.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von Tom »

Wir brauchen endlich einen "Gefällt mir"-Button im Forum. :wink:
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von Manfred »

HI Tom,
das war immer schon Thema, aber irgendwas war da noch in Sachen Inkompabilitäten weswegen wir das seiner Zeit nicht weiter verfolgt haben. Aber vielleicht hat sich das schon erledigt. Ich denke wir werden das nochmal prüfen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
sherlogg
UDF-Programmierer
UDF-Programmierer
Beiträge: 57
Registriert: Mo, 19. Nov 2012 14:59
Wohnort: Mühlheim am Main
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von sherlogg »

Manfred hat geschrieben: Mi, 27. Mai 2020 10:20 HI Tom,
das war immer schon Thema, aber irgendwas war da noch in Sachen Inkompabilitäten weswegen wir das seiner Zeit nicht weiter verfolgt haben. Aber vielleicht hat sich das schon erledigt. Ich denke wir werden das nochmal prüfen.
Auch wenn ein "Gefällt-Button" heutzutage mehr als inflationär benutzt wird ... in diesem Forum wäre er angebracht :)

LG, Dieter
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von Manfred »

so, jetzt könnt ihr euch verlustigen damit.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von Bertram Hansen »

Manfred,

wieso nur 3 mikrige Sterne :-k

Ach ja und wenn wir gerade schon bei den Wünschen sind. Eine größere Auswahl an den Smilies, Emoji oder Stickern wäre auch nicht schlecht. :blob8:
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von brandelh »

wie kommen die Sterne zu Stande ?
Ich sehe nur "Gefällt mir" Auswahl ... zählt der auch die lesenden ohne "Gefällt mir" und berechnet die Quote ?
Gruß
Hubert
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von Koverhage »

Nach der Formel Gutdünken ;-)
Gruß
Klaus
Benutzeravatar
Hans Zethofer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 278
Registriert: Fr, 27. Jan 2006 8:29
Wohnort: 2700 Wiener Neustadt
Hat sich bedankt: 1 Mal
Kontaktdaten:

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von Hans Zethofer »

Jedes "Daumen hoch" erhöht die %-Zahl und dadurch auch die Sterne.
Du kannst das aber auch wieder zurücknehmen, dann reduziert sich das ganze wieder.
_____________
lg
Hans
Benutzeravatar
Hans Zethofer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 278
Registriert: Fr, 27. Jan 2006 8:29
Wohnort: 2700 Wiener Neustadt
Hat sich bedankt: 1 Mal
Kontaktdaten:

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von Hans Zethofer »

Warum erscheint bei meinem letzten Post kein "Daumen hoch"?
_____________
lg
Hans
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von Manfred »

bei Deinem Eigenen? Eigenlob stinkt. :badgrin:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Hans Zethofer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 278
Registriert: Fr, 27. Jan 2006 8:29
Wohnort: 2700 Wiener Neustadt
Hat sich bedankt: 1 Mal
Kontaktdaten:

Re: Multithread und/oder wie organisiert ihr den Zugriff auf DBFs

Beitrag von Hans Zethofer »

ok :D - das heisst - Fremde sehen es ... dann passt es
_____________
lg
Hans
Antworten