Clipper5.2e Fehler

Still in use?

Moderator: Moderatoren

Antworten
angelo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 196
Registriert: Mo, 24. Apr 2006 10:52

Clipper5.2e Fehler

Beitrag von angelo »

Hallo zusammen,

habe vor einigen Zeit mein Programm das ich mit Clipper5.1 geschrieben habe auf Clipper5.2e umgestellt. Einiges habe ich dabei auch ändern müssen. Jedoch taucht immer mal wieder die folgende Fehlermeldung auf.

ERROR DBCMD/1011 ALIAS bereis benutzt
ERROR DBCMD/2001 nicht selektierter Arbeitsbereich

Könnte mir jemand dabei helfen wieso diese Fehlermeldung auftaucht bzw. was ich da falsch mache.

Unter Clipper5.1 hat es ohne Probleme funktioniert.

Im voraus vielen Dank für die Antworten.

Viele Grüße
angelo
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16511
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Angelo,
kannst Du mal ein wenig von dem betroffenen Code posten?
Öffnest Du vielleicht die betreffende DBF ohne speziellen Alias und hast auch eine andere geöffnet, der Du bereits einen Aliasnamen mitgegeben hast, der genauso heißt, wie die angemeckerte Datei?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

hast du eine gleichnamige Datei auf anderem Laufwerk oder die gleiche Datei shared schon geöffnet ? Clipper zählt hier die automatischen Aliasnamen nicht durch (wie es Xbase++ tut). Grundsätzlich sollte man immer einen expliziten Alias angeben.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Clipper5.2e Fehler

Beitrag von AUGE_OHR »

moin
angelo hat geschrieben: habe vor einigen Zeit mein Programm das ich mit Clipper5.1 geschrieben
du meint v5.01a. (eine v5.1 gibt es nicht)
angelo hat geschrieben: habe auf Clipper5.2e umgestellt. Einiges habe ich dabei auch ändern müssen. Jedoch taucht immer mal wieder die folgende Fehlermeldung auf.

ERROR DBCMD/1011 ALIAS bereis benutzt
ERROR DBCMD/2001 nicht selektierter Arbeitsbereich

Könnte mir jemand dabei helfen wieso diese Fehlermeldung auftaucht bzw. was ich da falsch mache.
hm ... eigendlich sind die Meldungen doch eindeutig ?

a.) wenn "ALIAS bereis benutzt" heist das, das du die DBF
schon in einer anderen WorkArea ( SELECT() ) geöffnet hast
oder bei explizitem Alias-Namen diesen schon verwendest.

b.) "nicht selektierter Arbeitsbereich" ist nun genau das Gegenteil
den da befindest du dich in einer WorkArea wo du was machen
willst die aber nicht nicht dem ALIAS() ( SELECT() ) entspricht.

zu a.) verwende nur eine NET_USE Routine zum öffen der DBF
und Index Dateien.

zu b.) compiliere mal mit "-w" und er wird dir alle "FELD"er
anmeckern die kein "ALIAS->" haben.
angelo hat geschrieben: Unter Clipper5.1 hat es ohne Probleme funktioniert.
hm ... hmm ... hmmm

gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
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: Clipper5.2e Fehler

Beitrag von brandelh »

angelo hat geschrieben:Unter Clipper5.1 hat es ohne Probleme funktioniert.
Ich meine mich erinnern zu können, dass 5.2ff strenger war was die Syntax angeht, genauso wie XBase++ strenger ist wie es Clipper jemals war.
Gruß
Hubert
Daniel

Beitrag von Daniel »

brandelh hat geschrieben: Grundsätzlich sollte man immer einen expliziten Alias angeben.
Hi

wie meinst du das genau, einen expliziten Alias?

Gruss
Daniel
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21189
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Daniel,

Xbase++ schaut nach, ob eine Datei unter dem gleichen Namen schon geöffnet ist. Wenn dies der Fall ist, dann erzeugt es einen Alias, der sich aus dem Dateinamen + der Area zusammenbaut.

Unter Clipper war das wohl so nicht der Fall. Also bedeutet dass: Es muß beim Öffnen der Dateiname zzgl. einem eindeutigen und einmaligen Aliasnamen angegeben werden.

Use test alias blahblah NEW
Use test alias blahblahblah NEW
Use test alias blah2

usw.
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!!
Daniel

Beitrag von Daniel »

Hi Manfred

ja, entweder gibst du diesen einmaligen Alias explizit vor.

Oder du öffnest
USE test NEW
fragst dann den ALIAS() oder die SELECT() ab, die XBase vergeben hat,
und verwendest einfach die weiter.

Auf jeden Fall ist es wichtig, Angelo,

das nicht nur für CLIPPER 5.2 /5.3 zu lösen, sondern gleich für XBase++

gruss
Daniel
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Man kann es auch - wenn man weniger Code ändern will - so machen:

Code: Alles auswählen

Select 0 // selektiert die nächste freie Workarea
Use Cust Index Cust Alias Cust // keine numerischen Aliase verwenden, Alias eindeutig
Man kann auch in Clipper eine Datei beliebig oft öffnen, aber sie muß jedes Mal einen ein-eindeutigen Alias haben, sonst schließt Clipper - wie Xbase - die zuvor unter diesem Alias geöffnete Datei.

Übrigens kann es auch daran liegen, daß Clipper implizit die Anzahl der zu öffnenden Tabellen begrenzt (20, wenn ich mich recht erinnere). Dafür gibt es entweder die Möglichkeit, eine Environment-Variable hochzusetzen (Batch):

SET CLIPPER=F100

oder, wenn Blinker benutzt wird, sowas zu tun:

BLINKER EXECUTABLE CLIPPER F100

Das geht auch mit dem normalen Linker, aber da ich den seit tausend Jahren nicht mehr benutzt habe, weiß ich nicht aus dem Kopf, wie.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Daniel hat geschrieben:
brandelh hat geschrieben: Grundsätzlich sollte man immer einen expliziten Alias angeben.
Hi

wie meinst du das genau, einen expliziten Alias?

Gruss
Daniel
use (cDBF) -> Clipper erzeugt automatisch einen Alias
use (cDBF) ALIAS XYZ -> Programmierer bestimmt Alias ...

Für Clipper ist die direkte Vergabe immer besser, aber für Xbase nicht !

Wenn ich beim Öffnen eines GUI Fensters jeweils die Datenbank mit öffne und

Code: Alles auswählen

use (cDBF)  ALIAS XYZ
schreibe, dann wird das erste Fenster schön geöffnet, beim zweiten krachts, da der Alias schon benutzt wird.
GUI Programme sind anders als alte Clipper Programme.
Deshalb vergibt Xbase++ die automatischen Aliasnamen auch anders.

Dennoch ist es für den Programmierer nicht möglich im Fenster-Quellcode den automatischen Alias direkt anzusprechen, denn woher soll er jetzt wissen in welchem Fenster die Datei zur Laufzeit schon offen ist ?

Daher verwende ich in GUI Applikationen immer eine Instanzvariable, die den Alias (numerisch) der DBF enthält (Natürlich ging auch der Text des automatisch vergebenen Alias, aber Zahlen sind einfach weniger Overhead):

Code: Alles auswählen

method ....:create(...
...
use (cDBF) NEW SHARED
if neterr() // da könnte ja was schief gehen !
   ::nAlias := select()
   set index ....
else
   Fehlermeldung
endif 
...
method ....:close(...)
   if (::nAlias)->(used())
      (::nAlias)->(dbclosearea())
   endif
...
Was mich bei DBU auch nervt, ist, dass er einen DBF Namen (8.3) mit der berühmten gekürzten ~ als Alias zu nutzen versucht und dann mit der Meldung endet, dass der Alias unerlaubte Zeichen enthält !

Also bei Clipper und längeren Dateinamen immer vorsichtig sein und einen passenden selbst zusammen basteln.
Gruß
Hubert
angelo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 196
Registriert: Mo, 24. Apr 2006 10:52

Re: Clipper5.2e Fehler

Beitrag von angelo »

AUGE_OHR hat geschrieben:moin
angelo hat geschrieben: habe vor einigen Zeit mein Programm das ich mit Clipper5.1 geschrieben
du meint v5.01a. (eine v5.1 gibt es nicht)
angelo hat geschrieben: habe auf Clipper5.2e umgestellt. Einiges habe ich dabei auch ändern müssen. Jedoch taucht immer mal wieder die folgende Fehlermeldung auf.

ERROR DBCMD/1011 ALIAS bereis benutzt
ERROR DBCMD/2001 nicht selektierter Arbeitsbereich

Könnte mir jemand dabei helfen wieso diese Fehlermeldung auftaucht bzw. was ich da falsch mache.
hm ... eigendlich sind die Meldungen doch eindeutig ?

a.) wenn "ALIAS bereis benutzt" heist das, das du die DBF
schon in einer anderen WorkArea ( SELECT() ) geöffnet hast
oder bei explizitem Alias-Namen diesen schon verwendest.

b.) "nicht selektierter Arbeitsbereich" ist nun genau das Gegenteil
den da befindest du dich in einer WorkArea wo du was machen
willst die aber nicht nicht dem ALIAS() ( SELECT() ) entspricht.

zu a.) verwende nur eine NET_USE Routine zum öffen der DBF
und Index Dateien.

zu b.) compiliere mal mit "-w" und er wird dir alle "FELD"er
anmeckern die kein "ALIAS->" haben.
angelo hat geschrieben: Unter Clipper5.1 hat es ohne Probleme funktioniert.
hm ... hmm ... hmmm

gruss by OHR
Jimmy

Hallo Auge_Ohr,

ich verwende zum öffnen der Datenbank 'USE Dateiname' bzw.
'USE Dateiname INDEX Dateiname.
Wie meinst Du das ich zum öffnen NET_USE Routine verwenden sollte.
Kannst Du mir ein kleines Beispiel zeigen.

gruss
angelo
angelo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 196
Registriert: Mo, 24. Apr 2006 10:52

Beitrag von angelo »

Martin Altmann hat geschrieben:Hallo Angelo,
kannst Du mal ein wenig von dem betroffenen Code posten?
Öffnest Du vielleicht die betreffende DBF ohne speziellen Alias und hast auch eine andere geöffnet, der Du bereits einen Aliasnamen mitgegeben hast, der genauso heißt, wie die angemeckerte Datei?

Viele Grüße,
Martin

Hallo Martin,

ich öffne alle DBF's nur mit USE.
Benütze keine ALIASNAMEN, im ganzen Programm. Ist es ratsamer wenn ich ALIASNAMEN vergebe? Es ist auch so das es mit der gleichen Datenbank immer ohne Probleme klappt und dann kommt plötzlich der Fehler.

Hier ein wenig Code:


DO rahmen
STORE SPACE(5) TO such
SET KEY -1 TO skssuch
@ 5,04 SAY 'Kundennummer....' GET such VALID such <> " "
@ 6,2 SAY REPL('Ä',76)
READ
USE sksks
SET INDEX TO kskdnr,kskurz,ksbran
SET KEY - 1 TO

gruss
angelo
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16511
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Angelo,
wie heißen Deine DBFs die Probleme bereiten?
Wie weist Du beim Öffnen eine Workarea zu (Select ...) - oder tust Du dies gar nicht?
Kann es sein, dass Du eine DBF öffnest (nicht shared, sondern exclusive) und sie später erneut öffnest, ohne sie vorher geschlossen zu haben?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

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

Beitrag von Tom »

Hallo, Angelo.

Ist Dir der Begriff "Workarea" geläufig? Wenn Du eine Tabelle öffnest, so oder so, geschieht das in einer Workarea. Zum Beispiel so:

Code: Alles auswählen

USE Kunden
? Select() // Antwort: 1
Die Tabelle wird in Workarea 1 geöffnet. Wenn man auf diese Art immer wieder Tabellen aufmacht, geschieht das in der selben Workarea, und Clipper schließt automatisch die zuvor in dieser Workarea geöffnete Datei:

Code: Alles auswählen

USE Kunden
? Select() // Antwort: 1
USE Artikel 
? Select() // Antwort: 1 - Kunden ist automatisch geschlossen worden
Aber:

Code: Alles auswählen

USE Kunden NEW
? Select() // Antwort: 1
USE Artikel NEW
? Select() // Antwort: 2 - Kunden ist immer noch offen
Select 1 // jetzt arbeite ich mit Kunden
Select 2 // jetzt mit den Artikeln
CLOSE // jetzt ist Artikel zu, Kunden ist noch offen
Um sich den ganzen numerischen Quatsch zu sparen, wählt man Aliase. Xbase macht das automatisch (Name der Datenbank ist der Name des Aliases), aber man kann sie auch direkt vergeben, um nicht durcheinanderzukommen, wenn man eine Tabelle mehrfach öffnet. Die numerische Vergabe der Workarea-Nummer bleibt weiterhin erhalten:

Code: Alles auswählen

USE Kunden ALIAS db1 NEW
USE Artikel ALIAS db2 NEW
Select db1 // bin auf Kunden
Select db2 // bin auf Artikel
Der Alias-Operator hat den Vorteil, daß man die Workarea nicht wechseln muß, um zwischen den Tabellen hin- und herzuschalten:

Code: Alles auswählen

? db1->name // ist immer "name" aus Kunden
? db2->name // ist "name" aus Artikeln
usw.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Angelo.

Wenn Du sowas machst:

Code: Alles auswählen

USE Kunden
GO TOP
SET KEY -1 TO artsuche
@ 1,1 SAY "Name" GET name
READ

PROC artsuche
USE Artikel
// Suche in Artikeln
RETURN
, dann geht die Referenz auf "name" im READ verloren, sobald "artsuche" aufgerufen wird, weil "artsuche" "Kunden" schließt. Ich kann mir allerdings kaum vorstellen, daß das in Clipper 5.1 ging. :shock:
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Tom,

und warum sollte das in 5.1 nicht gegangen sein ?
Hilfsbildschirme mit eigenem Dateizugriff habe ich schon unter Sommer87 eingesetzt. Ob NEW als USE Parameter erlaubt ist weiß ich aber auch nicht mehr.

Wichtig bei solchen Aktionen ist aber alles beim Aufruf zu sichern, und später zurückzusetzen, was auch nur irgendwie geändert werden kann.

Code: Alles auswählen

function ....
local nAltSelect, nAltColor, ...
nAltSelect := select()
select 2
use ...
do irgendwas ...
close ...
select (nAltSelect)
...
return ...
Gruß
Hubert
angelo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 196
Registriert: Mo, 24. Apr 2006 10:52

Beitrag von angelo »

Martin Altmann hat geschrieben:Hallo Angelo,
wie heißen Deine DBFs die Probleme bereiten?
Wie weist Du beim Öffnen eine Workarea zu (Select ...) - oder tust Du dies gar nicht?
Kann es sein, dass Du eine DBF öffnest (nicht shared, sondern exclusive) und sie später erneut öffnest, ohne sie vorher geschlossen zu haben?

Viele Grüße,
Martin

Hallo Martin,

die DBF's heißen z.B. kunden.dbf oder die Datenbanken für die Statistik bzw. Monatsabschluß. Jedoch kann ich es dir nicht genau sagen weil für Wochen oder Monate nichts passiert und dann taucht die Fehlermeldung auf. Später passiert wieder lange Zeit nichts.
Zuweisen tu ich beim öffnen der Workarea Select() zu aber die Nummern dazu vergebe ich selber.
Die Datenbanken öffne ich exklusive aber diese werden auch wieder geschlossen bevor ich diese wieder öffne.

Viele Grüße
angelo
angelo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 196
Registriert: Mo, 24. Apr 2006 10:52

Beitrag von angelo »

Tom hat geschrieben:Hallo, Angelo.

Ist Dir der Begriff "Workarea" geläufig? Wenn Du eine Tabelle öffnest, so oder so, geschieht das in einer Workarea. Zum Beispiel so:

Code: Alles auswählen

USE Kunden
? Select() // Antwort: 1
Die Tabelle wird in Workarea 1 geöffnet. Wenn man auf diese Art immer wieder Tabellen aufmacht, geschieht das in der selben Workarea, und Clipper schließt automatisch die zuvor in dieser Workarea geöffnete Datei:

Code: Alles auswählen

USE Kunden
? Select() // Antwort: 1
USE Artikel 
? Select() // Antwort: 1 - Kunden ist automatisch geschlossen worden
Aber:

Code: Alles auswählen

USE Kunden NEW
? Select() // Antwort: 1
USE Artikel NEW
? Select() // Antwort: 2 - Kunden ist immer noch offen
Select 1 // jetzt arbeite ich mit Kunden
Select 2 // jetzt mit den Artikeln
CLOSE // jetzt ist Artikel zu, Kunden ist noch offen
Um sich den ganzen numerischen Quatsch zu sparen, wählt man Aliase. Xbase macht das automatisch (Name der Datenbank ist der Name des Aliases), aber man kann sie auch direkt vergeben, um nicht durcheinanderzukommen, wenn man eine Tabelle mehrfach öffnet. Die numerische Vergabe der Workarea-Nummer bleibt weiterhin erhalten:

Code: Alles auswählen

USE Kunden ALIAS db1 NEW
USE Artikel ALIAS db2 NEW
Select db1 // bin auf Kunden
Select db2 // bin auf Artikel
Der Alias-Operator hat den Vorteil, daß man die Workarea nicht wechseln muß, um zwischen den Tabellen hin- und herzuschalten:

Code: Alles auswählen

? db1->name // ist immer "name" aus Kunden
? db2->name // ist "name" aus Artikeln
Hier verwende ich 'STORE name TO name' nach dem öffnen von 'db1' oder 'db2'. Diese hat doch die gleiche auswirkung, oder?

usw.

Hallo Tom,

vielen dank erstmal für die Beispiele.
Workarea heißt doch Arbeitsbereich wenn ich nicht falsch liege.
Wahrscheinlich werde ich zum öffnen der DBF's diese mit ALIASE versehen weil das doch besser ist wie mit den Nummern (SELECT()) und auch eindeutiger.

Viele Grüße
angelo
angelo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 196
Registriert: Mo, 24. Apr 2006 10:52

Beitrag von angelo »

Tom hat geschrieben:Hallo, Angelo.

Wenn Du sowas machst:

Code: Alles auswählen

USE Kunden
GO TOP
SET KEY -1 TO artsuche
@ 1,1 SAY "Name" GET name
READ

PROC artsuche
USE Artikel
// Suche in Artikeln
RETURN
, dann geht die Referenz auf "name" im READ verloren, sobald "artsuche" aufgerufen wird, weil "artsuche" "Kunden" schließt. Ich kann mir allerdings kaum vorstellen, daß das in Clipper 5.1 ging. :shock:

Hallo Tom,

mit 'artsuche' wird ein kleines Hilfe-Fenster geöffnet wenn man die F2-Taste drückt. Man kann dann den Kunden oder Artikel usw. aussuchen und nach dem bestätigen wird die Artikelnr. oder Kundennr. übernommen und dieser Kunde oder Artikel letzten endes auf den Bildschirm angezeigt.

Viel Grüße
angelo
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16511
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Angelo,
Tom hatte darauf hingewiesen, dass Du Probleme bekommst, wenn Du in der Funktion, die mit F2 aufgerufen wird, einfach wieder eine DBF öffnest, ohne vorher in eine frei Workarea zu wechseln!!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Martin Altmann hat geschrieben:... dass Du Probleme bekommst, wenn ... ohne vorher in eine frei Workarea zu wechseln!!
Und vergiss nicht meinen Hinweis, vor dem Beenden wieder in die alte zurück zu wechseln ;)
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Angelo.
mit 'artsuche' wird ein kleines Hilfe-Fenster geöffnet wenn man die F2-Taste drückt. Man kann dann den Kunden oder Artikel usw. aussuchen und nach dem bestätigen wird die Artikelnr. oder Kundennr. übernommen und dieser Kunde oder Artikel letzten endes auf den Bildschirm angezeigt.
Und genau das scheitert, wenn beim Öffnen der Artikeldatei kein neuer Arbeitsbereich (mit NEW bei USE oder durch vorheriges Select 0) gewählt wird. Es scheitert auch, wenn die Artikeldatei nicht geschlossen wird und "artsuche" abermals aufgerufen wird.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Tom hat geschrieben:Select 0
was isn das ... kurzes Nachsehen im Handbuch ... aha selektiert die erste freie Workarea, das war jetzt für mich auch neu !

Man lernt halt nie aus :D
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21189
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Wobei ich jetzt aber ganz ehrlich zugeben muß, dass unter Xbase++ mit Klassen, es wesentlich einfacher geworden ist. Eine Klasse bauen, die DB NEW öffnet, sich die Area merkt usw. und dann nur noch ansprechen und alle Namen sind Schall und Rauch.
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
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Aber halt auch nie vergessen, dass tatsächlich die aktuelle Workspace immer sichtbar ist und auch gewechselt wird falls man ein USE NEW aufruft, also den Code nicht mit altem mischen.
Gruß
Hubert
Antworten