Index auf memofeld mit FOXCDX Treiber
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Index auf memofeld mit FOXCDX Treiber
Hi,
unter DBFNTX kann man auf ein Memofeld einen Index aufbauen. Wenn ich das mit FOXCDX probiere, bekomme ich immer eine Fehlermeldung mit Subcode "D". Kann das sein? Ich versuche das heute zum ersten Mal und bin etwas verwundert.
unter DBFNTX kann man auf ein Memofeld einen Index aufbauen. Wenn ich das mit FOXCDX probiere, bekomme ich immer eine Fehlermeldung mit Subcode "D". Kann das sein? Ich versuche das heute zum ersten Mal und bin etwas verwundert.
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!!
Re: Index auf memofeld mit FOXCDX Treiber
Hallo Manfred
kenne mich mit FOXCDX nicht aus,
aber hast Du das schon zum Test über einen Funktions-Index versucht?
z.B.: Index on MyIndex( cMemo ) to "IndexFile"
Ob das geht oder auch ein Fehler kommt...
(Oder geht ein Funktions-Index nicht in FOXCDX?)
kenne mich mit FOXCDX nicht aus,
aber hast Du das schon zum Test über einen Funktions-Index versucht?
z.B.: Index on MyIndex( cMemo ) to "IndexFile"
Ob das geht oder auch ein Fehler kommt...
(Oder geht ein Funktions-Index nicht in FOXCDX?)
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Index auf memofeld mit FOXCDX Treiber
Hi Roland,
nein habe ich noch nicht. Habe ich aber schon dran gedacht. Ich wollte aber erstmal wissen, ob es da generell Unterschiede gibt. Index auf ein memofeld würde ich eh nicht machen, aber es ist ein übernommenes Projekt und da ist das halt drin.
nein habe ich noch nicht. Habe ich aber schon dran gedacht. Ich wollte aber erstmal wissen, ob es da generell Unterschiede gibt. Index auf ein memofeld würde ich eh nicht machen, aber es ist ein übernommenes Projekt und da ist das halt drin.
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: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Index auf memofeld mit FOXCDX Treiber
Unter DBFNTX kann man keinen Index auf ein Memofeld setzen. Man kann höchstens Indexe setzen, die Funktionsausdrücke enthalten, die Inhalte von Memofeldern berücksichtigen. INDEX ON textfeld TO MeinIndex geht nicht. INDEX ON Left(textfeld,20) TO MeinIndex geht.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Index auf memofeld mit FOXCDX Treiber
stimmt, genau das meinte ich
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!!
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Index auf memofeld mit FOXCDX Treiber
Das hier klappt und NTX
unter FOX
nicht
Code: Alles auswählen
OrdCreate(x1index,,"SubStr(m_user,7,4) + SubStr(m_user,4,2) + SubStr(m_user,1,2) + SubStr(m_user,12,5 )")
Code: Alles auswählen
OrdCreate(x1index,"user","SubStr(m_user,7,4) + SubStr(m_user,4,2) + SubStr(m_user,1,2) + SubStr(m_user,12,5 )")
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: Index auf memofeld mit FOXCDX Treiber
Ja hallo Manfred, schon lange ncihts mehr gelesen von dir...
So was Grausliches, auf Memofelder indexieren. (Ich weiss, du warst es nicht).
Erstell ein Textfeld mit 17 Zeichen Länge und kopier die ersten 17 Zeichen des Memos da hinein. So kannst du problemlos diesen Index erstellen und umgehst diesen Unsinn am einfachsten. Je nach der Verwendung dieser verschiedenen Substrings wäre ein Aufsplitten auf mehrere Textfelder angebracht.
Einige Leute haben echt keinen Begriff von Datenbankdesign. Dann musst du so was ausbaden.
So was Grausliches, auf Memofelder indexieren. (Ich weiss, du warst es nicht).
Erstell ein Textfeld mit 17 Zeichen Länge und kopier die ersten 17 Zeichen des Memos da hinein. So kannst du problemlos diesen Index erstellen und umgehst diesen Unsinn am einfachsten. Je nach der Verwendung dieser verschiedenen Substrings wäre ein Aufsplitten auf mehrere Textfelder angebracht.
Einige Leute haben echt keinen Begriff von Datenbankdesign. Dann musst du so was ausbaden.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Index auf memofeld mit FOXCDX Treiber
Hi Herbert,
ich agiere im Hintergrund
Deinen Vorschlag hatte ich auch schon durchdacht, geht aber leider im Moment nicht. Das ganze Teil muß nach und nach umgebaut werden. Das ist eine verdammt aufwändige Sache. Zur Zeit rüste ich von NTX auf CDX um und dabei ist mir das halt aufgefallen. Laut Anleitung geht das ja generell nicht, aber das es ohne zu murren bei NTX geht, das verwirrt mich ein wenig.
ich agiere im Hintergrund
Deinen Vorschlag hatte ich auch schon durchdacht, geht aber leider im Moment nicht. Das ganze Teil muß nach und nach umgebaut werden. Das ist eine verdammt aufwändige Sache. Zur Zeit rüste ich von NTX auf CDX um und dabei ist mir das halt aufgefallen. Laut Anleitung geht das ja generell nicht, aber das es ohne zu murren bei NTX geht, das verwirrt mich ein wenig.
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: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Index auf memofeld mit FOXCDX Treiber
hi,
wie sieht deine DBESYS aus ?
mit SixDrive/Comix funktioniert ein Index auf Memo bis 120 Zeichen.
p.s. ich verwende es nicht mehr ... statt dessen ein CUSTOM Index auf Memo wo ich jedes Wort indiziere.
wie sieht deine DBESYS aus ?
mit SixDrive/Comix funktioniert ein Index auf Memo bis 120 Zeichen.
Code: Alles auswählen
_tagname := "MYDESCRIPT"
_KEYFELD := "UPPER(SUBSTR(LTRIM(DESCRIPT)+SPACE(119),1,119))"
ORDCREATE( _cdxname, _tagname, _keyfeld )
CLOSE INDEX
gruss by OHR
Jimmy
Jimmy
- brandelh
- 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: Index auf memofeld mit FOXCDX Treiber
Dem Index ist es eigentlich völlig gleichgültig um was für ein Feld es sich handelt, solange man ihm Strings vorsetzt.
wichtig ist nur dass die Länge gleich bleibt
Egal welche Order-DBE verwendet wird, intern wird immer nur der Stringwert gespeichert und alle Strings müssen gleich lang sein.
Ich denke dass dein Problem nicht an der CDX liegt, sondern an dem erzeugten String. Bei NORMALEN Datentypen stimmt das meist.
was genau passiert, wenn das Memofeld LEER ist, oder weniger als 20 Zeichen hat ?
genau, der Rückgabewert wird nicht mehr lang genug sein
Bei einer DBF Datei ist ein Memofeld ja immer in 512 Byte Blöcken organisiert und eventuell kann der DBFNTX Treiber damit deshalb besser umgehen,
aber der Fehler liegt im Aufruf !
Aus deinem Code sehe ich, dass du 13 Zeichen in den Index schreiben willst, die genaue Länge muss garantiert werden !!!
PS: ich generiere sowas normalerweise mit einer eigenen Funktion, die die Länge sicherstellt, die Gesamtlänge wird sonst schnell unübersichtlich
wichtig ist nur dass die Länge gleich bleibt
Egal welche Order-DBE verwendet wird, intern wird immer nur der Stringwert gespeichert und alle Strings müssen gleich lang sein.
Ich denke dass dein Problem nicht an der CDX liegt, sondern an dem erzeugten String. Bei NORMALEN Datentypen stimmt das meist.
Code: Alles auswählen
OrdCreate(x1index,,"SubStr(m_user,7,4) + SubStr(m_user,4,2) + SubStr(m_user,1,2) + SubStr(m_user,12,5 )")
genau, der Rückgabewert wird nicht mehr lang genug sein
Bei einer DBF Datei ist ein Memofeld ja immer in 512 Byte Blöcken organisiert und eventuell kann der DBFNTX Treiber damit deshalb besser umgehen,
aber der Fehler liegt im Aufruf !
Aus deinem Code sehe ich, dass du 13 Zeichen in den Index schreiben willst, die genaue Länge muss garantiert werden !!!
Code: Alles auswählen
nIndexLen := 13 // ich hoffe ich habe oben richtig zusammengerechnet
OrdCreate(x1index,,"left(SubStr(m_user,7,4) + SubStr(m_user,4,2) + SubStr(m_user,1,2) + SubStr(m_user,12,5 )+space(nIndexLen),nIndexLen)")
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Index auf memofeld mit FOXCDX Treiber
Hi Hubert,
Dein Vorschlag klappt auch nicht. Also werde ich diese DBF erstmal mit DBFNTX erzeugen und den index auch und später sehen was machbar ist. Gibt es eben kurzfristig einen Mischbetrieb.
Dein Vorschlag klappt auch nicht. Also werde ich diese DBF erstmal mit DBFNTX erzeugen und den index auch und später sehen was machbar ist. Gibt es eben kurzfristig einen Mischbetrieb.
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!!
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Index auf memofeld mit FOXCDX Treiber
und jetzt kommt der nächste Klops.
Unter NTX kann man anscheinend auch einen Index mit Charrem() aufbauen. Unter Foxcdx geht das gar nicht. Jedenfalls ist mir das bei der Umstellung aufgefallen, das es so war.
Unter NTX kann man anscheinend auch einen Index mit Charrem() aufbauen. Unter Foxcdx geht das gar nicht. Jedenfalls ist mir das bei der Umstellung aufgefallen, das es so war.
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: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Index auf memofeld mit FOXCDX Treiber
denke daran, dass ALLE Indexschlüssel gleich lang sein MÜSSEN !
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Index auf memofeld mit FOXCDX Treiber
Ich weiß das. Mich wunderte nur, dass es unter NTX klappte.. Eigentlich ist es da erste, was man lernt. Gleichlange Indexschlüssel. keine Ahnung was ich noch so aufdecke.
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!!