Used() [ERLEDIGT]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
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:

Used() [ERLEDIGT]

Beitrag von Koverhage »

Ich habe ein Problem damit.

Laut Beschreibung kann ich damit feststellen ob eine Datei mit dem Alias geöffnet ist.
Falls die Funktion ohne Alias Operator verwendet wird ...

1. Versuch funktioniert nicht, da den ALIAS nicht gibt.
IF KDImportDatei->Used()
ENDF

2. Versuch funktioniert nicht
IF Used("KDImportDatei")
ENDF

oError:description : Datenbank-Alias existiert nicht/ist ungltig
oError:filename :
oError:genCode : 66
oError:operation : ->
oError:osCode : 0
oError:severity : 2
oError:subCode : 8022

Wie kann ich feststellen ob ein Alias vergeben ist, d.h. eine Datei geöffnet ist ?

Habe das mit IF SELECT"KDImportDatei") > 0
gelöst. Aber für was soll den USED gut sein ?
Zuletzt geändert von Koverhage am Di, 17. Feb 2015 7:29, insgesamt 1-mal geändert.
Gruß
Klaus
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
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: Used()

Beitrag von Wolfgang Ciriack »

Mit Used() kannst du feststellen, ob ein Selectbereich benutzt ist, z.B.

Code: Alles auswählen

select ("kunden")
if used()...
Viele Grüße
Wolfgang
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:

Re: Used()

Beitrag von Tom »

Du kannst das Used() aber auch mit dem (automatischen) Alias als Parameter verwenden:

Code: Alles auswählen

USE MeineDatei NEW
? Used('MeineDatei') // .T.
oder so:

Code: Alles auswählen

? MeineDatei->(Used()) // .T.
Laufzeitfehler:

Code: Alles auswählen

? IrgendeineDatei->(Used())

Code: Alles auswählen

? Used('IrgendeineDatei') // .F.
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:

Re: Used()

Beitrag von brandelh »

Tom hat geschrieben: Laufzeitfehler:

Code: Alles auswählen

? IrgendeineDatei->(Used())
genau deshalb ruft man USED() nicht mit dem Alias auf, denn wenn er nicht existiert knallt es :!:

Der Code mit dem Alias als TextString müsste aber funktionieren, daher prüfe ob die Fehlerzeile wirklich hier liegt !
Ich selbst merke mir ja den Select-Bereich, und da ist es immer möglich auf used() abzufragen:

Code: Alles auswählen

use Kunde ...
if ! neterr()
   nSelect := select()
   ... hier könnte der Code die Datei auch schließen ...
   // zur Sicherheit ...
   if (nSelect)->(used())
      (nSelect)->(dbCloseArea())      
   endif
endif
das müsste aber funktionieren, das habe ich schon so gemacht (die Frage ist aber, woher du den Namen wirklich weißt !):

Code: Alles auswählen

IF Used("KDImportDatei")
ENDF
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:

Re: Used()

Beitrag von Tom »

Used() mit Alias-Operator hat nicht den geringsten Sinn. Man will ja über Used() herausfinden, ob der Alias gültig bzw. in Verwendung ist.
Herzlich,
Tom
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: Used()

Beitrag von Koverhage »

Hubert,

ich bekomme diverse Dateien zum Import.
Aufgrund einer Umstellung ist die Anzahl aber nicht mehr fix.
z.B.

Code: Alles auswählen

   my_ziel := cDirectory + "\nkkihome.dbf"
   my_ind1 := cDirectory + "\nkkihome.ntx"
   IF Fexists( my_ziel )
       use my_ziel alias nkkh NEW
   endif
Danach wollte ich

Code: Alles auswählen

 IF Used("nkph") 
      nkph->(DbCloseArea())
   ENDIF    
 Da bekomme ich die Fehlermeldung.
Gruß
Klaus
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: Used()

Beitrag von Koverhage »

Tom,
Used() mit Alias-Operator hat nicht den geringsten Sinn. Man will ja über Used() herausfinden, ob der Alias gültig bzw. in Verwendung ist.
Die ganze Hilfe zu Used() ist sehr verworren :)
Gruß
Klaus
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Used()

Beitrag von Rudolf »

Hallo,
ich habe mit

Code: Alles auswählen

function dbused(cAlias)
***************************************************************************
return SELECT (cAlias) > 0
keine Probleme, funtioniert auch wenn es den Alias nicht gibt
Grüße
Rudolf
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: Used()

Beitrag von brandelh »

in welcher Zeile genau !
Bei DbCloseArea() oder bei if used(...)

Im Beispiel oben hast du beim öffnen einen anderen Alias als bei used ... aber das ist sicher nur ein Übertragungsfehler oder ?

Hast du dir mal mit ALIAS() anzeigen lassen, ob der Inhalt dem entspricht, was du erwartest ?
Gruß
Hubert
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: Used()

Beitrag von brandelh »

Code: Alles auswählen

   if ! used("MD")
      ...
   endif
   if ! used("USERVERW")
      ...
   endif
ich kann keinen Unterschied zu deinem erkennen ;-)
Gruß
Hubert
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: Used()

Beitrag von brandelh »

Code: Alles auswählen

   IF Fexists( my_ziel )
       use my_ziel alias nkkh NEW
   endif
und was ist wenn ein NETERR() aufgetreten ist ?
Gruß
Hubert
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
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: Used()

Beitrag von Wolfgang Ciriack »

Hallo Klaus,
ist das ein Schreibfehler ?
nkkh hast du geöffnet, danach prüfst du nkph ???
Viele Grüße
Wolfgang
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: Used()

Beitrag von Koverhage »

Hallo Wolfgang,

nein kein Schreibfehler, wie Hubert schon anmerkte ein "Übertragungsfehler" ;-)

Ich verwende jetzt wie bereits geschrieben SELECT
Gruß
Klaus
Antworten