Lange haben wir gerätselt, wie man wohl am einfachsten den Oracle Benutzer an die VB Komponenten unseres Systems übergeben kann. Da ständige Registryzugriffe zu langsam waren, sind wir schließlich auf die Möglichkeit gestoßen, einer Komponente eine Konstruktorzeichenfolge (Constructor String) zu übergeben. Dies kann man durch Rechtsklick auf die jeweilige Komponente unter Komponentendienste einstellen. In der Registerkarte "Aktivierung" kann diese Option sowohl aktiviert werden, als auch der Constructor String eingegeben werden.
Um den String in der Komponente dann auswerten zu können, muss man folgendes tun:
1. Das Projekt muss einen Verweis auf die "COM+ Services Type Library" haben
2. Folgenden Code einfügen:
Implements IObjectConstruct
Private m_strConstructString As String
Private Sub IObjectConstruct_Construct(ByVal pCtorObj As Object)
m_strConstructString = pCtorObj.ConstructString
End Sub
Public Function GetConstructorString() As String
If m_strConstructString = "" Then
GetConstructorString = "Data Source=DSN;User Id=USERNAME;Password=PASSWORD"
Else
GetConstructorString = m_strConstructString
End If
End Function
Das wars auch eigentlich schon :-) Ab sofort könnt Ihr über die Funktion "GetConstructorString" direkt den übergebenen String abholen. In meiner Variante wird noch ein Standardstring gesetzt, falls der Konstruktorstring leer sein sollte.