Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Don Pasquale am 11.02.03 - 13:55:20

Titel: @Unique in Skript
Beitrag von: Don Pasquale am 11.02.03 - 13:55:20
Hallo Leute,

ich möchte, das Werte in einem bestimmten Feld (DOC_ID) eindeutig sind.
Dazu habe ich eine View sortiert nach diesem Wert eingerichtet.
Die Doc_ID ist ein String der Länge 32

Leider liefert meine Funktion immer 0 zurück.
Wo ist mein Denkfehler ?

Ciao

Don Pasquale

Function DoesDOC_IDexists(DOC_ID As String) As Integer
   
Dim VIEW_BY_DOC_ID As String
VIEW_BY_DOC_ID   = "DOC_ID"
Dim Anzahl As Integer
Dim session As New NotesSession    
Set db = session.CurrentDatabase
Set view = db.GetView(VIEW_BY_DOC_ID)
Set dc = view.GetAllDocumentsByKey(DOC_ID, True)
   
Print DOC_ID
ANZAHL = dc.Count
   
If ANZAHL = 0 Then
 DoesDOC_IDexists = 0
Else
 DoesDOC_IDexists = 1
End If
End Function
Titel: Re:@Unique in Skript
Beitrag von: Don Pasquale am 11.02.03 - 13:58:35
Könnte daran liegen dass der Key nicht definiert ist.
Dennoch arbeitet die Funtkion nicht einwandfrei,
wie gut ist denn das GetDocumentsbyKey ?
Die funktion liefert 131 mal false zurück statt 274 mal ?
Gibt es da Bugs ?
pascal
Titel: Re:@Unique in Skript
Beitrag von: ata am 11.02.03 - 14:07:19
... du übergibst im Kopf der Funktion Doc_ID - wie ziehst du dir den Wert - mit doc.UniversalID oder mit uidoc.GetFieldText("Doc_ID") ?

ata

Titel: Re:@Unique in Skript
Beitrag von: forrest g am 11.02.03 - 14:07:51
... da fehlt erstmal folgendes...
dim dc as notesdocumentcollection

die suchfunktion sucht nach dem String "Doc_ID"

du musst das ändern in:
Set dc = view.GetAllDocumentsByKey(DOC_ID, True)
Titel: Re:@Unique in Skript
Beitrag von: ata am 11.02.03 - 14:11:42
@forrest_g

... korrekt... *blinzel*

ata
Titel: Re:@Unique in Skript
Beitrag von: Don Pasquale am 11.02.03 - 14:14:46
@Forrrest g

Das mit dem
Set dc = view.GetAllDocumentsByKey(DOC_ID, True)
hatte ich auch schon gemerkt ,
ob das dim dc etwas ausmacht ?

Die DOC_ID ist NICHT die UniversalID.

Die Doc_ID hole ich aus einer SQL Datenbank mittels
DOC_ID = Cstr(Res.GetValue("DOC_ID"))                

ciao

Don Pasquale
Titel: Re:@Unique in Skript
Beitrag von: forrest g am 11.02.03 - 14:26:39
hallo don pasquale,

also der Suchwert(DOC_ID) ist doch in einem Feld gespeichert?
das hast du doch oben geschrieben...(?)

dann solltest du auch nach diesem wert suchen(egal, dass das nicht die unid ist) und nicht nach dem stringwert in deiner formel(VIEW_BY_DOC_ID   = "DOC_ID")

ist die erste spalte der view sortiert?
Titel: Re:@Unique in Skript
Beitrag von: Don Pasquale am 11.02.03 - 14:33:20
@Forrest

Vielen Dank,
jetzt klappt´s


Ciao

Don Pasquale
Titel: Re:@Unique in Skript
Beitrag von: forrest g am 11.02.03 - 14:46:15
hi don pasquale,

also das mit der anbindung an die sql-db kenne ich nicht genau...,
aber...

-deine view muss in der ersten spalte sortiert sein nach DOC_ID
-du muss mit nach dieser id suchen mit
Set dc = view.GetAllDocumentsByKey(DOC_ID, True)
... sag mal, hast du dein erstes posting bearbeitet...,
denn du hattest doch als suchwert VIEW_BY_DOC_ID eingetragen und das war ein string(VIEW_BY_DOC_ID   = "DOC_ID"), der nicht gefunden werden konnte...   (?!)