Hallo!
Ich sehe gerade, dass ich hier noch gar nicht geantwortet habe. Komisch. Ich dachte eigentlich, das hätte ich.
Also, ich habe mir verschiedene versteckte Ansichten gebastelt, die jeweils die Daten für eine Dialogliste enthalten. Im QueryOpen-Event habe ich jeweils ein Script drin, das eine MySQL-Datenbank abfragt und für jeden Treffer ein Dokument erzeugt. Die Auswahl der Dokumente für die jeweilige Ansicht erfolgt über die verschiedenen Masken-Namen, die ich in die erzeugten Dokumente schreibe.
Performance-technisch ist das nicht besonders toll, so oft wird das aber auch nicht benötigt.
Der Vorschlag von Taurec mit dem versteckten Feld ist auch nicht schlecht und sicher deutlich performanter. Dafür habe ich bei meiner Lösung mit den Ansichten die Möglichkeit, auch mehrere Felder pro Option anzuzeigen und dem Benutzer auch ein Sortieren nach verschiedenen Kriterien zu ermöglichen.
So sieht der Anfang meines Codes aus:
Sub Queryopen(Source As Notesuiview, Continue As Variant)
' Variablendeklaration
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Dim aw_form As String
Dim ODBC_Source As String
ODBC_Source = "ZOD2"
aw_form = "AW_Titel"
' Verbindung zur Datenbank herstellen
Dim con As New ODBCConnection
If Not con.ConnectTo(ODBC_Source) Then
Print "Es konnte keine Verbindung zur " & ODBC_Source & " hergestellt werden!"
Exit Sub
Else
Print "Verbindung zur " & ODBC_Source & " hergestellt."
End If
' Abfrage der ZOD-Daten
Dim qry As New ODBCQuery
Dim result As New ODBCResultSet
Set qry.Connection = con
Set result.Query = qry
Set result.Connection = con
qry.SQL ="call getValid('Titel','" & Format(Now(), "yyyy-mm-dd hh:nn:ss") & "',0)"
result.Execute
qry.SQL ="SELECT titel FROM temptable WHERE intern = 1;"
result.Execute
Alles anzeigen
Entscheidend sind die beiden SQLs am Ende. Mit dem ersten sollen die Daten über die aufgerufene StoredProcedure aufbereitet und in eine temporäre Tabelle kopiert werden. Mit dem zweiten SQL wird diese temporäre Tabelle dann abgefragt.
Beide Befehle sind korrekt und funktionieren, wenn ich sie direkt in MySQL eingebe. Ich meine, sie hätten auch in Notes funktioniert, aber vermutlich hat mir jetzt das Rechenzentrum den Saft abgedeht und ich kann von Notes aus die StoredProcedure nicht mehr aufrufen. Der direkte Zugriff auf eine Tabelle wie im zweiten SQL-Befehl funktioniert aber. Beim Aufruf der StoredProcedure aus Notes passiert dagegen gar nichts. Auch keine Fehlermeldung. :-?
Naja, vielleicht finde ich ja das Problem noch.
Viele Grüße,
Oli