Seite 1 von 1

Writer-Formular Datenbankverbindung wechseln

Verfasst: Do, 07.06.2012 23:38
von F3K Total
Hallo zusammen,
ich habe folgendes Problem:
Mit "GRANT" und "SET PASSWORD" kann ich in einer HSQLDB einem USER eine Rolle und ein Passwort zuordnen.
Dazu muss ich "DBA" sein.
Wenn ich die Änderungen durchgeführt habe, soll der USER im geöffneten WRITER Formular angemeldet werden, und zwar mit seiner Rolle, nicht als DBA
Ich stelle mir vor, dass ich dazu die Datenbankverbindung einmal kappen, und dann wieder neu verbinden muß.
Hat jemand eine Idee, wie dass in Basic geht?

beste Grüße von Rik

Re: Writer-Formular Datenbankverbindung wechseln

Verfasst: Fr, 08.06.2012 09:10
von RobertG
Da ich keinen entsprechenden Testaufbau habe, hier einmal ein Schuss ins Blaue. Müsste natürlich von der internen Datenbank und *.odb auf Deine Variante umgesetzt werden. Prinzipiell gibt es aber die Möglichkeit, die Verbindung zu schließen

Code: Alles auswählen

oDatenquelle = ThisComponent.Parent.CurrentController
oVerbindung = oDatenquelle.ActiveConnection()
oVerbindung.close()
If NOT (oDatenquelle.isConnected()) THEN
   oDatenquelle.connect()
END IF
Bei mir lässt sich in Base direkt die Verbindung schließen und mit einer neuen Kontaktsuche wieder öffnen.

Gruß

Robert

Re: Writer-Formular Datenbankverbindung wechseln

Verfasst: Fr, 15.06.2012 19:40
von F3K Total
Hallo Robert,
ich war eine Woche nicht zuhause, daher antworte ich erst jetzt.
Deine Methode kannte ich, die funktioniert in einer .odb Datei, ich suchte eine Lösung für ein Writer Formular und habe sie inzwischen gefunden:

Code: Alles auswählen

oform =  thiscomponent.drawpage.forms.MainForm
Verbindung = oform.activeconnection
odatasource = Verbindung.parent

ssql = "ALTER USER12 SET PASSWORD 'meinPasswort'"
SQL_Statement.executeupdate(ssql)

ssql = "GRANT USERROLE TO USER12"
SQL_Statement.executeupdate(ssql)

ssql = "REVOKE DBA FROM USER12"
SQL_Statement.executeupdate(ssql)

Verbindung.close

Verbindung = oDataSource.getConnection ("USER12", "meinPasswort")
oform.activeconnection = Verbindung '... und hier wird die Verbindung wieder hergestellt
Vielen Dank,
beste Grüße von Rik

Re: Writer-Formular Datenbankverbindung wechseln

Verfasst: Fr, 15.06.2012 21:12
von F3K Total
Hallo zusammen,
Kommando zurück!
Zwar kann ich mit dem o.a. Befehl die Verbindung meines Hauptformulares zur DB wieder herstellen, aber ich habe Probleme mit dem Subformular.
Es ist über zwei Parameter (Foreign Keys) an das Hauptformular gebunden.
Trotz "movetoinsertrow" kommt eine Fehlermeldung beim Eingeben eines neuen Datensatzes "Attempt to insert null into a non nullable column".
Ich habe herausgefunden, dass die Parameter nicht zur Verfügung stehen, MRI zeigt 0.
Trotz "subform.load"
Wie schaffe ich es, das nicht nur das Hauptformular, sondern auch das Unterformular nach dem Schliessen und erneutem Öffnen der Verbindung zur Datenbank korrekt verknüpft geladen wird?
Hat da jemand einen Tipp für mich?

Beste Grüße von Rik