Hab jetzt noch ein bisschen für dich nachgeforscht:
Damit bekome ich das Rowset
Code: Alles auswählen
oRowSet = createUnoService("com.sun.star.sdb.RowSet")
oRowSet.setPropertyValue("DataSourceName", "oobuero")
oRowSet.CommandType = com.sun.star.sdb.CommandType.COMMAND
cmdSQL = "SELECT * FROM adressen ORDER BY NAME1"
oRowSet.setPropertyValue("Command", cmdSQL)
oRowSet.execute()
Und damit das Resultset
Code: Alles auswählen
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName(DB)
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
Connection = DataSource.ConnectWithCompletion(InteractionHandler)
Statement = Connection.createStatement()
ResultSet = Statement.executeQuery("SELECT * FROM adressen ORDER BY NAME1")
Wenn du ein RowSet hast bekommst du das ResultSet auch durch:
Der einzige wirkliche Unterschied den ich nachvollziehen kann ist das ich eine Resultset nicht updaten kann.
RowSet ist von ResultSet abgeleitet. Jedes RowSet unterstützt demnach (zumindest nach .execute()) auch die ResultSet-Methoden und besitzt die ResultSet-Properties. Umgekehrt natürlich nicht.
Warum aber rowcount nicht vorhanden ist?
Benutz das RowSet, dann hast du auch RowCount

Warum sie dem armen ResultSet keine Möglichkeit gegeben haben, die Datenbank die Rows zählen zu lassen weiß ich auch (noch) nicht
Und warum Rowcount im Formular nur die angezeigten zählt?
Weil er noch nicht mehr kennt. Das ResultSet hat Zugriff zur Datenquelle, das RowSet nicht - daher kann RowSet nur verraten, was er bisher von Papa ResultSet verraten bekommen hat.
Ich bilde mir ein, wenn du die Daten in einer Tabelle anzeigst zählt er auch erstmal nur so um die 40, und erst wenn du weiter runter scrollst guggd er nach und stellt fest "Hoppla, sind ja sogar 70... sogar 100..." usw
