Abfrage mit Parametern direkt als Makro ausführen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Abfrage mit Parametern direkt als Makro ausführen

Re: Abfrage mit Parametern direkt als Makro ausführen

von DPunch » Mi, 03.11.2010 17:41

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.

Re: Abfrage mit Parametern direkt als Makro ausführen

von AtzeLenin » Mi, 03.11.2010 17:02

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!

Re: Abfrage mit Parametern direkt als Makro ausführen

von DPunch » Mi, 03.11.2010 13:47

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.

Abfrage mit Parametern direkt als Makro ausführen

von AtzeLenin » Mi, 03.11.2010 12:58

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!

Nach oben