Hallo,
normalerweise setze ich DbXXX-Funktionen immer so ein: adressen->(DbSeek(....)). Wenn ich aber die Standard-Funktionen erweitern möchte - wie mache ich das dann mit einer eigenen Db-Funktion? Also z. B. adressen->(MyDbSeek(...))? Wie bekomme ich den angegebenen Alias in meine Funktion rein? Kann ich den vorgestellten Alias irgendwie abfragen? Oder rmuß ich den besser als zusätzlichen Parameter mit übergeben?
Jan
Frage zum Alias [Erledigt]
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Frage zum Alias [Erledigt]
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: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Frage zum Alias
probiert habe ich es nicht, aber es müsste so sein, dass in deiner Funktion dann der richtige Selectbereich / Alias angesprochen wird.
Versuche es einfach aus:
Versuche es einfach aus:
Code: Alles auswählen
use db1 alias DB1 NEW
use db2 alias DB2 NEW
? MyFunc() // sollte DB2 sein
? DB1->(MyFunc()) // sollte DB1 sein
function MyFunc()
return alias()
Gruß
Hubert
Hubert
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2829
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 97 Mal
- Danksagung erhalten: 13 Mal
Re: Frage zum Alias
Hallo, Jan -
ich verstehe die Schreibweise alias->(Funktion()) so, dass die Funktion ausgeführt wird, und dabei der aktuelle Select()-Bereich (z.B. "Kunden") mit dem Alias "überschrieben" wird, der angegeben ist (z.B. "Artikel"). Das funktioniert auch mit anderen Funktionen, d.h. Huberts Beispiel zeigt es recht gut.
Um den Alias-Namen zu erfahren, führst Du einfach die alias()-Funktion aus.
Ich habe eine DBF-Klasse, in der ich in den Methoden mit (::alias)->(irgendwas()) operiere.
ich verstehe die Schreibweise alias->(Funktion()) so, dass die Funktion ausgeführt wird, und dabei der aktuelle Select()-Bereich (z.B. "Kunden") mit dem Alias "überschrieben" wird, der angegeben ist (z.B. "Artikel"). Das funktioniert auch mit anderen Funktionen, d.h. Huberts Beispiel zeigt es recht gut.
Um den Alias-Namen zu erfahren, führst Du einfach die alias()-Funktion aus.
Ich habe eine DBF-Klasse, in der ich in den Methoden mit (::alias)->(irgendwas()) operiere.
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.
- 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: Frage zum Alias
Es ist so wie ich dachte, etwas ausführlicheres Testprogramm:
Ergebnis:
Code: Alles auswählen
procedure main
set alternate to test.txt
set alternate on
use db1 alias DB1 NEW
use db2 alias DB2 NEW
? "1. direkt",alias(),select()
MyFunc() // sollte DB2 sein
? "2. direkt",alias(),select()
DB1->(MyFunc()) // sollte DB1 sein
inkey(10)
return
function MyFunc()
? alias(),select()
return alias()
Code: Alles auswählen
1. direkt DB2 2
DB2 2
2. direkt DB2 2
DB1 1
Gruß
Hubert
Hubert
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Frage zum Alias
Hallo Hubert,
da bist Du mir mit Deinem Testergebnis zuvor gekommen. Vielen Dank für die Arbeit.
Das macht die Arbeit mit erweiterten DbXXX()-Funktionen natürlich wesentlich einfacher.
Jan
da bist Du mir mit Deinem Testergebnis zuvor gekommen. Vielen Dank für die Arbeit.
Das macht die Arbeit mit erweiterten DbXXX()-Funktionen natürlich wesentlich einfacher.
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.