Indexsuche

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

Moderator: Moderatoren

Antworten
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Indexsuche

Beitrag von Rolf Ramacher »

Morgen allerseits,

ich habe ein Problem das ich nciht verstehe. es wird nach einem Datensatz gesucht, der auch definitiv in der Datenbank vorhanden ist.

hier das öffnen der Datenbank

Code: Alles auswählen

	use Spfolg1 New
	set index to "spfolg1.cdx"
	Spfolg1->(OrdSetFocus("filiale"))
es erfolgt im Quellcode kein weiterer Ordsetfocus


hier ist die Suchfunktion

Code: Alles auswählen

							cIndex:="32"+Spproto->Artinr+aFil[j]
if spproto->Artinr = "431850015"
msgbox(cIndex)
endif
							If Spfolg1->(DbSeek(cIndex))

if spproto->Artinr = "4318500015"
msgbox("Treffer")
endif
Ich habe msgbox für diesen Artikel eingebaut um zu sehen wo er ist. der Index lautet richtigerweise "32431850015" -



Hier der Aufbau der Indexdatei, die ausgeführt wird, wenn die CDX-Datei nicht vorhanden ist.

Code: Alles auswählen

If !File("SPFolg1.Cdx")		
	lIndex:=.t.
   If !Netz_Use("SpFolg1.Dbf",.t.)
		Quit
	EndIf
   Index on sa+artnr+lfdnr+filiale tag "spfolg1" to "spfolg1.cdx"
   Index on sa+artnr+filiale tag "filiale" to "spfolg1.cdx"
	Index on artnr tag "artnr" to "spfolg1.cdx"
	Index on artnr+sa Tag "artnrsa" to "spfolg1.cdx"
	Index on filiale+artnr tag "fil2" to "spfolg1.cdx"
	Index on sa+filiale+artnr tag "safil" to "spfolg1.cdx"
	oStatic1:caption:=(cText+"SPFOLG1")
	oStatic1:configure()
EndIf

Hat jemand eine Idee ???
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
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: Indexsuche

Beitrag von brandelh »

Ich kenne mich mit den Mehrfachen Indexen in einer Datei nicht so aus, aber dies ...
Wenn eine DBE verwendet wird, die mehrere Indizes pro Index-Datei unterstützt, braucht <cIndexFile> nicht angegeben werden, wenn bereits ein kontrollierender Index in der Workarea vorhanden ist. In diesem Fall wird der Index <cTagName> der Index-Datei zugefügt, die den kontrollierenden Index beinhaltet.
könnte bedeuten, dass du nur für den ersten Aufruf den Namen der Indexdatei angibst und die weiteren dann ohne.
Zumindest solltest du prüfen, ob alle TAGs wie vorgesehen in der Datei enthalten sind.
Gruß
Hubert
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Indexsuche

Beitrag von Rolf Ramacher »

Hubert

der TagName wird richtig angezeigt.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2825
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 96 Mal
Danksagung erhalten: 13 Mal

Re: Indexsuche

Beitrag von georg »

Hallo, Rolf -


versuche doch mal

Spfolg1->(DbSeek(cIndex, , "filiale"))

Oder prüfe vor dem dbSeek() mal über Spfolg1->(ordSetFocus()), ob der erwartete Index immer noch aktiv ist.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Indexsuche [ERLEDIGT]

Beitrag von Rolf Ramacher »

Ich habs gefunden- war ein ganz blöder tippfehler

danke für die Unterstützung.,
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Antworten