Aktionen auf nicht geöffnete DBF
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Aktionen auf nicht geöffnete DBF
HI,
nur mal eine Frage am Rande: Was meint ihr, ist das korrekt, dass es keine Fehlermeldung oder sonstwas von Xbase++ gibt, wenn man versucht eine Datenbankoperation wie z.B. DbGoTop auf eine DBF zu machen, die gar nicht geöffnet ist? Das Programm bleibt da stehen, aber macht nichts weiter.
nur mal eine Frage am Rande: Was meint ihr, ist das korrekt, dass es keine Fehlermeldung oder sonstwas von Xbase++ gibt, wenn man versucht eine Datenbankoperation wie z.B. DbGoTop auf eine DBF zu machen, die gar nicht geöffnet ist? Das Programm bleibt da stehen, aber macht nichts weiter.
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: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Aktionen auf nicht geöffnete DBF
Moin Manfred,
wenn ich sowas mache bekomme ich sofort einen Laufzeitfehler wegen unbekannten Alias, oder ähnliche Hinweise.
Was eindeutig Mist ist: Wenn ich ein DbSeek() mache, und im dritten Parameter einen ungültigen Index eintrage, dann läuft der in der Tat einfach durch, das Ergebnis ist aber natürlich totaler Blödsinn.
jan
wenn ich sowas mache bekomme ich sofort einen Laufzeitfehler wegen unbekannten Alias, oder ähnliche Hinweise.
Was eindeutig Mist ist: Wenn ich ein DbSeek() mache, und im dritten Parameter einen ungültigen Index eintrage, dann läuft der in der Tat einfach durch, das Ergebnis ist aber natürlich totaler Blödsinn.
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.
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Aktionen auf nicht geöffnete DBF
OK,
erweitern wir das ein wenig. Da ich mir den Selectbereich merke, wenn die DBF geöffnet wird, ist dieser natürlich 0, wenn sie nicht geöffnet wurde. Also gehe ich dann wohl mit (0)->(DbGoTop()) dran und das gibt keine Fehlermeldung bei mir. Es Programm "hängt" dann nur.
erweitern wir das ein wenig. Da ich mir den Selectbereich merke, wenn die DBF geöffnet wird, ist dieser natürlich 0, wenn sie nicht geöffnet wurde. Also gehe ich dann wohl mit (0)->(DbGoTop()) dran und das gibt keine Fehlermeldung bei mir. Es Programm "hängt" dann nur.
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: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Aktionen auf nicht geöffnete DBF
das ist gar nicht möglichManfred hat geschrieben:wenn man versucht eine Datenbankoperation wie z.B. DbGoTop auf eine DBF zu machen, die gar nicht geöffnet ist?
wenn ein USE fehlschlägt, ist keine Datei geöffnet.
Deine Befehle greifen bestenfalls auf einen leeren Selectbereich zu, und das sollte man tunlichst vermeiden !
Code: Alles auswählen
use myDBF
if neterr()
fehlermeldung
exit
else
nur hier wird auf die Datei zugegriffen !
Wenn bei SELECT der Wert 0 angegeben wird, selektiert der Befehl die Workarea mit der niedrigsten Ordinalzahl, in der keine Dateien geöffnet sind (der nächsten freien Workarea).
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Aktionen auf nicht geöffnete DBF
Öhm,
wo steht dass ich einen Select 0 mache? Ich deklariere die Var mit 0 vor. Wenn dann die DBF geöffnet würde, wird der benutzte Seletcbereich übernommen. Da ich aber die DBF vergessen hatte zu öffnen, wurde auch die 0 nicht überschrieben. Ich gebe nur einen Selectbereich, statt des Aliasnamen vor, wenn ich die Operation mache.
wo steht dass ich einen Select 0 mache? Ich deklariere die Var mit 0 vor. Wenn dann die DBF geöffnet würde, wird der benutzte Seletcbereich übernommen. Da ich aber die DBF vergessen hatte zu öffnen, wurde auch die 0 nicht überschrieben. Ich gebe nur einen Selectbereich, statt des Aliasnamen vor, wenn ich die Operation mache.
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!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Aktionen auf nicht geöffnete DBF
Wenn ein DbUseArea() fehlschlägt, gibt es ja - je nach Errorsys - keinen Laufzeitfehler, dafür liefert NetErr() .T.. Und je nach Struktur des Codes bleibt dann die Workarea selektiert, die zuvor selektiert war. Du skippst also in diesem Fall in der falschen Tabelle. Wenn keine selektiert ist, feuert "Datenbankalias existiert nicht oder ist ungültig". Das kann man mit diesem Code nachstellen:
Code: Alles auswählen
FUNCTION Main()
DbSkip(1)
RETURN nil
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Aktionen auf nicht geöffnete DBF
OK,
aber das Programm bleibt da hängen und das war es.
aber das Programm bleibt da hängen und das war es.
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!!
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Aktionen auf nicht geöffnete DBF
Manfred, du hast ja das Problem geortet...
Man sollte ohnehin immer den Alias verwenden.
So wird prinzipiell das Arbeiten in einem falschen Bereich verhindert.
(Spätestens bei Xbase 3.0 wirst du bei der Konversion froh sein darüber. Weil der Select()-Befehl ab da keinen Sinn mehr macht - und zudem SELECT als Keyword für SQL-Queries reserviert ist.)
Man sollte ohnehin immer den Alias verwenden.
So wird prinzipiell das Arbeiten in einem falschen Bereich verhindert.
(Spätestens bei Xbase 3.0 wirst du bei der Konversion froh sein darüber. Weil der Select()-Befehl ab da keinen Sinn mehr macht - und zudem SELECT als Keyword für SQL-Queries reserviert ist.)
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Aktionen auf nicht geöffnete DBF
Herbert,
ob ich das noch erleben werde?
ob ich das noch erleben werde?
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!!
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2827
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 96 Mal
- Danksagung erhalten: 13 Mal
Re: Aktionen auf nicht geöffnete DBF
Hallo, Manfred -
ich verstehe Dein Problem nicht.
Beispiel:
Das wäre ja der Fall, den Du beschreibst, d.h. keine Datei im aktuellen Select-Bereich offen, und ein dbSkip() im (0)-Bereich. Interessanterweise lässt der Compiler das zu, beim Ausführen gibt es aber einen Abbruch:
Was machst Du anders, dass bei Dir das Programm hängt?
Könntest Du mal folgendes versuchen, vor der Ausführung des dbSkip() den Alias() zu ermitteln, oder die Select()-Nummer?
Es scheint so, dass Du mit (0)-> auf eine geöffnete Datei zugreifst, und beim Versuch, in dieser Datei den Satzzeiger zu bewegen, hängt diese Datei.
ich verstehe Dein Problem nicht.
Beispiel:
Code: Alles auswählen
FUNCTION Main()
Select(0)
(0)->(dbSkip())
RETURN (.T.)
Code: Alles auswählen
------------------------------------------------------------------------------
ERROR LOG of "C:\Entwicklungen\test\NoSele\NSL.EXE" Date: 10/07/2013 13:59:24
Xbase++ version : Xbase++ (R) Version 1.90.355
Operating system : Windows 7 06.01 Build 07601 Service Pack 1
------------------------------------------------------------------------------
oError:args :
oError:canDefault : Y
oError:canRetry : N
oError:canSubstitute: N
oError:cargo : NIL
oError:description : Unknown/Invalid symbol for alias
oError:filename :
oError:genCode : 66
oError:operation : DbSkip
oError:osCode : 0
oError:severity : 2
oError:subCode : 8021
oError:subSystem : BASE
oError:thread : 1
oError:tries : 0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Called from MAIN(4)
Könntest Du mal folgendes versuchen, vor der Ausführung des dbSkip() den Alias() zu ermitteln, oder die Select()-Nummer?
Es scheint so, dass Du mit (0)-> auf eine geöffnete Datei zugreifst, und beim Versuch, in dieser Datei den Satzzeiger zu bewegen, hängt diese Datei.
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Aktionen auf nicht geöffnete DBF
hi,
passiert es in einem Thread ?Manfred hat geschrieben:Was meint ihr, ist das korrekt, dass es keine Fehlermeldung oder sonstwas von Xbase++ gibt ...
gruss by OHR
Jimmy
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Aktionen auf nicht geöffnete DBF
nein
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!!
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Aktionen auf nicht geöffnete DBF
Daher arbeite ich überhaupt nicht mehr mit select-Bereichen, ich spreche die Datenbank direkt an.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Aktionen auf nicht geöffnete DBF
und wie machst du das ?
PS: DBF/FOX-DBE arbeiten in Select-Bereichen ...
PS: DBF/FOX-DBE arbeiten in Select-Bereichen ...
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Aktionen auf nicht geöffnete DBF
@Rolf
Aha, hochinteressant.
Aha, hochinteressant.
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: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Aktionen auf nicht geöffnete DBF
Vielleicht möchte er damit ausdrücke, das er keine Select-Angaben mehr benutzt, sondern nur noch die Aliasse. Das würde Sinn machen.
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.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Re: Aktionen auf nicht geöffnete DBF
Bei mir nichtbrandelh hat geschrieben:... PS: DBF/FOX-DBE arbeiten in Select-Bereichen ...
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Mitglied XuG Cologne
Mitglied XuG Osnabrück