Abfrage mit Parametern direkt als Makro ausführen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

AtzeLenin
*
Beiträge: 17
Registriert: Mi, 03.11.2010 12:56

Abfrage mit Parametern direkt als Makro ausführen

Beitrag von AtzeLenin »

Hallo Leute,

Ich versuche eine vorgefertigte Abfrage mit einem Makro aufzurufen. Das Funktioniert auch. Wenn in der Abfrage allerdings Parameter angefordert werden gibt es eine Exeception - ist ja auch klar, denn ich übergebe keine Parameter und ich hab nicht den blassesten Schimmer wo und wie ich die Parameter übergebe. Kann mir bitte jemand sagen wie das geht?

Hier mein Test-Code:
Code:

Code: Alles auswählen

   DataBaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
   DataSource = DataBaseContext.getByName("Datenbank")

   con = DataSource.GetConnection("","")
   Connection = con.createStatement()

   abfrage = con.getQueries().getByName("Abfrage")

   sql = Connection.executeQuery(abfrage.command)
   If Not IsNull(sql) Then
     sql.next
     print sql.getString(1)
   End If


Danke für euer Hirnschmalz! :D
RF!
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Abfrage mit Parametern direkt als Makro ausführen

Beitrag von DPunch »

Aloha
AtzeLenin hat geschrieben:Kann mir bitte jemand sagen wie das geht?
Gar nicht.
Parameter sind eine "Komfortfunktion" von Base, per Makro gehst Du aber direkt an die Datenbank (eingebettete HSQL-DB oder was Du eben für eine DB benutzt).

Noch ein Hinweis:
Abfragen der Art

Code: Alles auswählen

   If Not IsNull(sql) Then
sind überflüssig, das Ergebnis von executeQuery kann nie null sein.
AtzeLenin
*
Beiträge: 17
Registriert: Mi, 03.11.2010 12:56

Re: Abfrage mit Parametern direkt als Makro ausführen

Beitrag von AtzeLenin »

Wenn ich mir die API angucke, kann ich das schwer glauben. Gibts nicht gabs bisher nicht... Klar krieg ich das auch manuell gut hin, aber ich dachte vielleicht lässt es sich mit Abfragen besser verwalten.

Aber es gibt doch bestimmt ein UNO um die Werte zu setzen... Verrückt.

Trotzdem erstmal Danke!
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Abfrage mit Parametern direkt als Makro ausführen

Beitrag von DPunch »

Aloha
AtzeLenin hat geschrieben:Wenn ich mir die API angucke, kann ich das schwer glauben.
Wie gesagt, die Parameterabfrage wird von Base und nur von Base gehandled - mit der Parametereingabe setzt Base das SQL-Statement zusammen und übergibt erst dieses an die Datenbank.
Im Endeffekt eine GUI-Funktion von Base als Frontend (aus diesem Grund funktionieren Abfragen mit Parametern auch nicht, wenn das Häkchen bei "SQL direkt ausführen" gesetzt ist).
Per Makro greifst Du aber direkt auf die Datenbank zu.
Antworten