Autor Thema: Problem mit NotesDatabase.Search  (Gelesen 2092 mal)

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Problem mit NotesDatabase.Search
« am: 30.11.06 - 08:20:36 »
Hallo,

ich habe ein kleines Problem mit der Search-Methode aus der NotesDatabase-Klasse. Ich suche mit einer Formel und müsste eigentlich auch was finden, aber leider finde ich nichts... Gebe ich die Suchformel per print aus, so sieht die Formel richtig aus. Schreibfehler in den Feldnamen habe ich ausgeschlossen, da ich mit Konstanten arbeite, die schon beim Erstellen genutzt werden.

Vielleicht kurz der Hintergrund: Ich hole mir aus dem Domänenkatalog alle Datenbanken und importiere diese in eine Art Softwareinventur. Nun möchte ich bei nochmaligem Ausführen des Imports verhindern, dass schon vorhandene Datenbanken doppelt importiert werden und prüfe halt per db.search, ob in der resultierenden Collection Dokumente enthalten sind. Die Konstanten für Feldnamen verwende ich auch beim Import.

Aber leider bleibt die Collection immer leer und damit wird alles mehrfach importiert...  :-:
« Letzte Änderung: 30.11.06 - 11:36:09 von MadMetzger »

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Problem mit NotesDatabase.Search
« Antwort #1 am: 30.11.06 - 08:44:20 »
Wie sieht denn die Formel und der Aufruf von Search aus?


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Problem mit NotesDatabase.Search
« Antwort #2 am: 30.11.06 - 08:52:26 »
Hier:
Der Code mit dem Search:
Code
        Dim checkCollection As NotesDocumentCollection
	Dim formel As String
	Dim pathname As String
	
	pathname = doc.GetItemValue(CATALOG_FIELD_DATABASE_FILE_NAME$)(0)
	
	formel = {Form = "}+FORM_NAME$+{" & } + FIELD_FILE_NAME$ +{ = "}+pathname+{"} 
	Print formel
	Print SEARCH_FORMULA$
	
	Set checkCollection = target.Search(formel,Nothing,0)

Die Konstanten:
Code
'Gerätedatenbankfeldnamen
Const FIELD_CATEGORY$ = "Softwarekategorie"
Const FIELD_FILE_NAME$ = "SWDateiname"
Const FIELD_REPLICA_ID$ = "ReplicaID"
Const FIELD_DATABASE_TITLE$ = "SWName"

'Katalogfeldnamen
Const CATALOG_FIELD_DATABASE_TITLE$ = "Title"
Const CATALOG_FIELD_DATABASE_FILE_NAME$ = "Pathname"
Const CATALOG_FIELD_REPLICA_ID$ = "ReplicaID"

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Problem mit NotesDatabase.Search
« Antwort #3 am: 30.11.06 - 09:02:11 »
Irgendwie fehlt mir die Konstante FORM_NAME$.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Problem mit NotesDatabase.Search
« Antwort #4 am: 30.11.06 - 09:09:21 »
Die war auch definiert:
Code
Const FORM_NAME$ = "Software"

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Problem mit NotesDatabase.Search
« Antwort #5 am: 30.11.06 - 10:28:12 »
Sieht eigentlich richtig aus. Ich verkette zwar die die einzelenen Teilstrings innerhalb der Suchformel mit & und nicht mit +, aber das dürfte hier keine Rolle spielen.

Hast du mal probiert was passiert, wenn du anstatt der Konstanten die Werte direkt angibst?


Axel

Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Problem mit NotesDatabase.Search
« Antwort #6 am: 30.11.06 - 10:38:21 »
Ob mit, ob ohne Konstante, das macht keinen Unterschied... Irgendwie beschleicht mich das Gefühl, dass ich irgendeine Kleinigkeit übersehen habe, aber ich weiß nicht, welche das sein kann...

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Re: Problem mit NotesDatabase.Search
« Antwort #7 am: 30.11.06 - 10:52:46 »
Gib die Formel doch mal als Auswahlformel in eine Ansicht ein und schau was dabei herauskommt.

Hubert

Glombi

  • Gast
Re: Problem mit NotesDatabase.Search
« Antwort #8 am: 30.11.06 - 11:03:41 »
Es wird an pathname liegen.

Die Formelsprache will ein "\\" falls die Datenbank in einem Unterverzeichnis liegt. Script liefert aber nur ein "\".

Du kannst mal versuchen in dem Schlüsselwortdokument folgendes einzugeben:
Verz1\\\\Verz2

Vielleicht gehts ja. Sonst musst Du halt vorher in dem Script Code aus "\" ein "\\" machen.

Andreas

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Problem mit NotesDatabase.Search
« Antwort #9 am: 30.11.06 - 11:13:28 »
Andreas hat Recht. Ich habe es parallel auch herausgefunden. Ein replace auf den String, wo "\" durch "\\" ersetzt wird, und schon läuft die Sache einwandfrei...

Letztendlich bin ich durch das Testen in einer Ansicht dem Problem auf die Schliche gekommen...

Und es war, wie schon vermutet eine Kleinigkeit, die man nicht bedacht hat...

Vielen Dank an alle Mitwirkenden!  :D

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz