Hi,
bevor ich jetzt etliche Versuche starte, frage ich vorher mal nach. Folgendes Szenario steht:
1) DBf Name = Test
2) Index aufgebaut auf ein Feld. Nennen wir es mal feld1
3) der Indexkey sieht so aus Upper(test->feld1)
Es steht also im Index die Angabe auf welche DbF es sich bezieht.
was würde theoretisch passieren, wenn man diese DBF in mindestens 2 Selectbereichen öffnet (es werden dann ja automatisch von Xbase++ die Aliasnamen vergeben) und man Änderungen macht?
test->feld1 passt ja dann nur auf den 1.Selectbereich.
der 2.Selectbereich würde ja dann evtl. test_2 heißen.
DB Angabe im Indexkey [ERLEDIGT]
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21248
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 211 Mal
- Danksagung erhalten: 71 Mal
DB Angabe im Indexkey [ERLEDIGT]
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: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: DB Angabe im Indexkey
Hallo, Manfred.
Wenn Du einen Index so erzeugst:
INDEX ON Upper(test1->name) TO ...
Dann steht dieser Alias-Verweis tatsächlich im Indexausdruck. Beim Auflösen des Indexes bzw. bei der Indexsuche würde dann, bei Verwendung eines anderen Aliases, auf etwas verwiesen, das überhaupt nicht existiert. M.E. müsste es schon beim Öffnen der Indexdatei einen Laufzeitfehler geben.
Ich halte das für keine sehr intelligente Vorgehensweise. Ich kann mir keine Konstellation vorstellen, die einen Alias im Indexausdruck erforderlich macht. Wenn eine Tabelle selektiert wird, wird der Index automatisch mit selektiert. Und wenn man per Alias sucht, geschieht das ebenfalls. Also einfach:
USE Test1
INDEX ON Upper(name) TO Test1
Feddisch. Funktioniert mit jedem Alias, unter dem "Test1" später geöffnet wird.
Wenn Du einen Index so erzeugst:
INDEX ON Upper(test1->name) TO ...
Dann steht dieser Alias-Verweis tatsächlich im Indexausdruck. Beim Auflösen des Indexes bzw. bei der Indexsuche würde dann, bei Verwendung eines anderen Aliases, auf etwas verwiesen, das überhaupt nicht existiert. M.E. müsste es schon beim Öffnen der Indexdatei einen Laufzeitfehler geben.
Ich halte das für keine sehr intelligente Vorgehensweise. Ich kann mir keine Konstellation vorstellen, die einen Alias im Indexausdruck erforderlich macht. Wenn eine Tabelle selektiert wird, wird der Index automatisch mit selektiert. Und wenn man per Alias sucht, geschieht das ebenfalls. Also einfach:
USE Test1
INDEX ON Upper(name) TO Test1
Feddisch. Funktioniert mit jedem Alias, unter dem "Test1" später geöffnet wird.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21248
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 211 Mal
- Danksagung erhalten: 71 Mal
Re: DB Angabe im Indexkey
Hi Tom,
ich wollte auch nur die Bestätigung, dass ich richtig liege. Ich dachte mir dasselbe. Diese Lösung ist auch nicht von mir. Aber.....
...was zu klappen scheint, dass man die Db mehrmals öffnen kann. Beim Lesen alleine scheint nichts zu passieren. Man kann auch Suchen. Aber ich dachte auch viel mehr daran, dass beim Schreiben im anderen Selectbereich Probleme auftauchen könnten/müßten.
ich wollte auch nur die Bestätigung, dass ich richtig liege. Ich dachte mir dasselbe. Diese Lösung ist auch nicht von mir. Aber.....
...was zu klappen scheint, dass man die Db mehrmals öffnen kann. Beim Lesen alleine scheint nichts zu passieren. Man kann auch Suchen. Aber ich dachte auch viel mehr daran, dass beim Schreiben im anderen Selectbereich Probleme auftauchen könnten/müßten.
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!!
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: DB Angabe im Indexkey
du hast den Alias sicherlich deshalb drin weil er sonst bei -w "meckert".Manfred hat geschrieben:1) DBf Name = Test
2) Index aufgebaut auf ein Feld. Nennen wir es mal feld1
3) der Indexkey sieht so aus Upper(test->feld1)
du kannst aber den Befehl FIELD verwenden, dann "meckert" er nicht und du hast auch bei einem anderen Alias keine Probleme.
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15710
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 73 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: DB Angabe im Indexkey
Hi,
um das Meckern zu umgehen, kann man index on upper(field->Test) einsetzen, ebenso bei allem was man mit DBLOCATE oder DBEVAL macht.
ein direkter Verweis auf einen Aliasnamen in diesen Befehlen kann gut gehen, ist aber immer eine Fehlerquelle die schwer zu finden ist.
um das Meckern zu umgehen, kann man index on upper(field->Test) einsetzen, ebenso bei allem was man mit DBLOCATE oder DBEVAL macht.
ein direkter Verweis auf einen Aliasnamen in diesen Befehlen kann gut gehen, ist aber immer eine Fehlerquelle die schwer zu finden ist.
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21248
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 211 Mal
- Danksagung erhalten: 71 Mal
Re: DB Angabe im Indexkey
Brrr,
warum macht ihr es mir immer so schwer? Oder ist es umgekehrt?
Ich weiß doch wie man es macht, bzw. hatte eine Vorstellung davon und wollte sie nur bestätigt wissen. Bei mir gibt es keine DBF Angabe vor dem Feld. Ich hatte es woanders gesehen und wollte nur noch einmal Gewissheit haben, bevor ich die andere Seite darauf hinweise.
warum macht ihr es mir immer so schwer? Oder ist es umgekehrt?
Ich weiß doch wie man es macht, bzw. hatte eine Vorstellung davon und wollte sie nur bestätigt wissen. Bei mir gibt es keine DBF Angabe vor dem Feld. Ich hatte es woanders gesehen und wollte nur noch einmal Gewissheit haben, bevor ich die andere Seite darauf hinweise.
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!!