Scope geht verloren
Moderator: Moderatoren
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2125
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Scope geht verloren
Servus,
hat das schon mal jemand gehabt?
DBFNTX, DBF wird selectiert, der korrekte Index wird selectiert und manchmal ist der gesetzte Scope für den Index weg.
DBF und / oder Index wird vorher nicht geschlossen und wieder geöffnet.
hat das schon mal jemand gehabt?
DBFNTX, DBF wird selectiert, der korrekte Index wird selectiert und manchmal ist der gesetzte Scope für den Index weg.
DBF und / oder Index wird vorher nicht geschlossen und wieder geöffnet.
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Scope geht verloren
Schaltest du vielleicht irgendwo inzwischen den Index um ?
Viele Grüße
Wolfgang
Wolfgang
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Scope geht verloren
Normaler Weise bleibt der Scope auf einem Index bestehen, bis man den explizit wieder entfernt. Oder die dbf schließt. Ein Index-Wechsel sollte also keine Auswirkungen haben. Außer das der Scope inaktiv (nicht gelöscht!) ist, wenn man einen anderen Index aktiviert.
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Scope geht verloren
Aber der Scope "lebt" eindeutig vom richtigen Index !
Es wäre schon möglich, dass ein SET INDEX einen bestehenden Scope schließt.
Das müsste man ausprobieren ...
Der Wechsel der Workarea hingegen darf nichts an ihm ändern.
Es wäre schon möglich, dass ein SET INDEX einen bestehenden Scope schließt.
Das müsste man ausprobieren ...
Der Wechsel der Workarea hingegen darf nichts an ihm ändern.
Gruß
Hubert
Hubert
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Scope geht verloren
Moin Hubert,
richtig. Ein Wechsel der aktiven dbf darf nichts am Scope ändern. Aber auch nicht der Wechsel zu einem anderen Index auf der gleichen dbf. So lange der Index mit dem Scope offen ist, bleibt auch der Scope bestehen. Außer natürlich man löscht den Scope.
Jan
richtig. Ein Wechsel der aktiven dbf darf nichts am Scope ändern. Aber auch nicht der Wechsel zu einem anderen Index auf der gleichen dbf. So lange der Index mit dem Scope offen ist, bleibt auch der Scope bestehen. Außer natürlich man löscht den Scope.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Scope geht verloren
Hallo JAN,
ich weiß es nicht, daher schreibe ich ja AUSPROBIEREN, aber so wie ich den Scope verstanden habe nutzt er immer den aktiven Index und wenn man den wechselt könnte ich mir schon vorstellen, dass Alaska dann den scope vorher löscht.
ich weiß es nicht, daher schreibe ich ja AUSPROBIEREN, aber so wie ich den Scope verstanden habe nutzt er immer den aktiven Index und wenn man den wechselt könnte ich mir schon vorstellen, dass Alaska dann den scope vorher löscht.
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Scope geht verloren
aus der Anleitung
das verstehe ich so, dass man auch hin und herschalten können sollte, ohne den Scope zu verlieren.Ein gesetzter Scope bleib so lange aktiv, bis er entweder mit SET SCOPE TO (ohne Parameter) gelöscht oder der Index bzw. die Datenbank geschlossen wird.
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!!
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!!
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Scope geht verloren
da hast du völlig Recht, man SOLLTE das können
ob es sinnvoll ist, bleibt eine andere Frage ...
nur kam es schon öfters vor, dass eine Funktion funktionieren sollte und es dennoch nicht tat
ob es sinnvoll ist, bleibt eine andere Frage ...
nur kam es schon öfters vor, dass eine Funktion funktionieren sollte und es dennoch nicht tat
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Scope geht verloren
Das stimmt, aber deshalb ja die Frage von Werner, ob das jemand schon erlebt hat und somit die Funktion einen Fehler haben könnte.
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!!
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!!
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Scope geht verloren
Hubert,
nach meinen praktischen Erfahrungen wird ein Scope NICHT gelöscht bei einem Indexwechsel. So lange man den Index mit dem Scope weiter offen läßt ...
Jan
nach meinen praktischen Erfahrungen wird ein Scope NICHT gelöscht bei einem Indexwechsel. So lange man den Index mit dem Scope weiter offen läßt ...
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2125
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Scope geht verloren
Danke für die rege Diskussion
Ich starte da einen Thread, öffne anfangs alle dbf mit allen Indexen und anschließend wird je nach Benutzerauswahl ein scope gesetzt. Zwischendurch wird schon mal ein dbsetorder() ausgeführt, aber dann wieder zurück.
Mein Prüfcode sieht jetzt so aus:
Die Routine hier läuft seit 2 Jahren bei mehreren Kunden, täglich x Mal, aber 1-2x / Jahr geht der scope verloren und dann kommt es zum Datenchaos.
Danke.
Ich starte da einen Thread, öffne anfangs alle dbf mit allen Indexen und anschließend wird je nach Benutzerauswahl ein scope gesetzt. Zwischendurch wird schon mal ein dbsetorder() ausgeführt, aber dann wieder zurück.
Mein Prüfcode sieht jetzt so aus:
Code: Alles auswählen
select formular
dbsetOrder(1) // zur Sicherheit wg. Scope! 19.03.2013
if .not. DbScope() // 25.09.2014
fehler("Die Eingrenzung (Scope) auf die Formularnummer ist verloren gegangen, teilen Sie uns bitte unbedingt die genauen" +;
" letzten Schritte unverzüglich mit!" + CRLF + "Aufruf aus: " + Trim(ProcName(1)) + "(" + LTrim(Str(ProcLine(1))) +;
"), " + Trim(ProcName(2)) + "(" + LTrim(Str(ProcLine(2))) + ")" + CRLF + opendbf(.t.))
return NIL
endif
dbgotop()
do while .not. eof()
replace...
skip
enddo
.
.
.
Danke.
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2125
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Scope geht verloren
Völlig korrekt, nutze ich schon seit Jahren so. Ist ja ein elementares Feature von Xbase++.Jan hat geschrieben:Hubert,
nach meinen praktischen Erfahrungen wird ein Scope NICHT gelöscht bei einem Indexwechsel. So lange man den Index mit dem Scope weiter offen läßt ...
Jan
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Scope geht verloren
Evtl. ist da vorher die Indexdatei defekt geworden ?aber 1-2x / Jahr geht der scope verloren und dann kommt es zum Datenchaos.
Viele Grüße
Wolfgang
Wolfgang
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2125
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Scope geht verloren
Unwahrscheinlich, gerade ein paar Stunden vorher wurde dieser komplett neu erzeugt (Wartung in der Nacht). Lt. Kunde war da auch nichts, lt. unseren Log-Dateien stimmt das auch.Wolfgang Ciriack hat geschrieben:Evtl. ist da vorher die Indexdatei defekt geworden ?
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Scope geht verloren
Frage : was brachte dich auf den Gedanken das der SCOPE "verloren" sei ?Werner_Bayern hat geschrieben:Die Routine hier läuft seit 2 Jahren bei mehreren Kunden, täglich x Mal, aber 1-2x / Jahr geht der scope verloren und dann kommt es zum Datenchaos.
hast du dann evtl. Umlaute im SCOPE ( PDR 6384 ) und erhält nicht die erwarteten Ergebnisse ?
passiert es bei "vielen" oder "wenigen" Treffern ? ( PDR 6098 / 5661 )
gruss by OHR
Jimmy
Jimmy
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2125
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Scope geht verloren
Datenchaos: Weil die Eingrenzung fehlt.AUGE_OHR hat geschrieben:Frage : was brachte dich auf den Gedanken das der SCOPE "verloren" sei ?
hast du dann evtl. Umlaute im SCOPE ( PDR 6384 ) und erhält nicht die erwarteten Ergebnisse ?
passiert es bei "vielen" oder "wenigen" Treffern ? ( PDR 6098 / 5661 )
Der PDR 6384 wurde von mir gefunden und gemeldet und der Scope ist numerisch. Der Scope ist auf ein Browse gesetzt, der Anwender würde es sofort erkennen. Formular ist z. B. die dbf mit allen Angeboten, der Scope ist dann die aktuelle Angebotsnummer, die bearbeitet wird (SCOPE_BOTH). Nach der Bearbeitung werden dann die Datensätze überprüft und mit aktuellen Zusatzdaten versorgt, da passiert es dann, dass alle Sätze der dbf "bearbeitet" werden.
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Scope geht verloren
Ich würde mir ganz am Anfang den ersten Satz merken und bei der zweiten Bearbeitung (goTop()) die Recno() prüfen.
Wenn die falsch ist, dbSeek() und bei jedem Replace FOR Bedingung prüfen ...
Auf welchem OS läuft denn das Ganze ?
Wenn die falsch ist, dbSeek() und bei jedem Replace FOR Bedingung prüfen ...
Auf welchem OS läuft denn das Ganze ?
Gruß
Hubert
Hubert
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2125
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Scope geht verloren
Servus Hubert,
klar kann ich da alles Mögliche drum rum programmieren, ich will aber die Ursache finden, vielleicht hab ich ja einen Fehler gemacht, vielleicht ist es eine bestimmte Konstellation, vielleicht liegts an Xbase++ oder sonst was.
OS: Im letzten Fall ein Win7 auf dem MAC, bei anderen Kunden Win7 64 bit.
klar kann ich da alles Mögliche drum rum programmieren, ich will aber die Ursache finden, vielleicht hab ich ja einen Fehler gemacht, vielleicht ist es eine bestimmte Konstellation, vielleicht liegts an Xbase++ oder sonst was.
OS: Im letzten Fall ein Win7 auf dem MAC, bei anderen Kunden Win7 64 bit.
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Scope geht verloren
OK ... aber es sind nur "wenige" Datensätze die zum SCOPE gehören ?Werner_Bayern hat geschrieben:Datenchaos: Weil die Eingrenzung fehlt.
Der PDR 6384 wurde von mir gefunden und gemeldet und der Scope ist numerisch. Der Scope ist auf ein Browse gesetzt, der Anwender würde es sofort erkennen.
da würde ich vermuten das die Daten noch nicht "richtig" in der DBF sind.Werner_Bayern hat geschrieben:Formular ist z. B. die dbf mit allen Angeboten, der Scope ist dann die aktuelle Angebotsnummer, die bearbeitet wird (SCOPE_BOTH). Nach der Bearbeitung werden dann die Datensätze überprüft und mit aktuellen Zusatzdaten versorgt, da passiert es dann, dass alle Sätze der dbf "bearbeitet" werden.
Frage : findet das ganze in einem Thread statt ? wie sieht deine DBESYS aus ?
ich würde es mal versuchen die DBF, nach der Bearbeitung zu schliessen und neu öffnen / positionieren.
gruss by OHR
Jimmy
Jimmy
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2125
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Scope geht verloren
1 - ca. 50.AUGE_OHR hat geschrieben:OK ... aber es sind nur "wenige" Datensätze die zum SCOPE gehören ?
??? Klar sind die in der DBF, sonst würde die Funktion nicht ausgeführt. Ja, ist ein eigener Thread.AUGE_OHR hat geschrieben:da würde ich vermuten das die Daten noch nicht "richtig" in der DBF sind.
Frage : findet das ganze in einem Thread statt ? wie sieht deine DBESYS aus ?
Code: Alles auswählen
PROCEDURE dbeSys()
#include "dmlb.ch"
#include "DbfDbe.ch"
#include "ntxDbe.ch"
#define MSG_DBE_NOT_LOADED "DBF Database-Engine nicht geladen!"
#define MSG_DBE_NOT_CREATED "DBF Database-Engine konnte nicht erzeugt werden!"
SET COLLATION TO GERMAN
IF !DbeLoad("DBFDBE",.T.)
fehler(MSG_DBE_NOT_LOADED)
ENDIF
IF !DbeLoad("NTXDBE",.T.)
fehler(MSG_DBE_NOT_LOADED)
ENDIF
IF !DbeLoad("DELDBE",.f.)
fehler(MSG_DBE_NOT_LOADED)
ENDIF
IF !DbeLoad("SDFDBE",.f.)
fehler(MSG_DBE_NOT_LOADED)
ENDIF
IF !DbeBuild("DBFNTX","DBFDBE","NTXDBE")
fehler(MSG_DBE_NOT_CREATED)
ENDIF
DbeSetDefault( "DBFNTX" )
DbeInfo(COMPONENT_ORDER,DBE_LOCKMODE,LOCKING_EXTENDED)
DbeInfo(COMPONENT_ORDER,NTXDBE_LOCKRETRY,200000)
DbeInfo(COMPONENT_ORDER,NTXDBE_LOCKDELAY,10)
DbeInfo(COMPONENT_DATA,DBFDBE_LIFETIME,0)
#ifdef SQL
IF !DbeLoad("pgdbe")
fehler("PostgreSQL DatabaseEngine konnte beim Programmstart nicht geladen werden!")
ENDIF
#endif
RETURN
Würde im Netz eine unnötige Verzögerung verursachen.AUGE_OHR hat geschrieben:ich würde es mal versuchen die DBF, nach der Bearbeitung zu schliessen und neu öffnen / positionieren.
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Scope geht verloren
JA ... aber bevor du dir deine DBF zerschiesst :-"Werner_Bayern hat geschrieben:Würde im Netz eine unnötige Verzögerung verursachen.
du hast zwar schonWerner_Bayern hat geschrieben:Ja, ist ein eigener Thread.
Code: Alles auswählen
DbeInfo(COMPONENT_DATA,DBFDBE_LIFETIME,0)
in deine DBESYS würde ich, bei DBTNTX,
Code: Alles auswählen
DbeInfo(COMPONENT_ORDER,DBE_LOCKMODE,LOCKING_EXTENDED)
gruss by OHR
Jimmy
Jimmy
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2125
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Scope geht verloren
2x Warum?AUGE_OHR hat geschrieben:drin aber gerade bei Thread hat man ja "manchmal" das Problem mit dem Timeing wo es noch nicht "stable" ist.Code: Alles auswählen
DbeInfo(COMPONENT_DATA,DBFDBE_LIFETIME,0)
in deine DBESYS würde ich, bei DBTNTX,raus nehmen ...Code: Alles auswählen
DbeInfo(COMPONENT_ORDER,DBE_LOCKMODE,LOCKING_EXTENDED)
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2125
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Scope geht verloren
Auf Deine 2 Vorschläge frage ich 2x: Warum?
drin aber gerade bei Thread hat man ja "manchmal" das Problem mit dem Timeing wo es noch nicht "stable" ist.
raus nehmen ...
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Scope geht verloren
weil ich die "Optimierung" bei DBFNTX für nicht ideal halte und die alle abschalte.Werner_Bayern hat geschrieben:weil Xbase++ nicht alleine auf dem PC läuft und es noch andere Programme / Dienste gibt die Zeit benötigendrin aber gerade bei Thread hat man ja "manchmal" das Problem mit dem Timeing wo es noch nicht "stable" ist.raus nehmen ...
gruss by OHR
Jimmy
Jimmy