HSQLDB, Anzahl Datensätze in der Datenbank

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: HSQLDB, Anzahl Datensätze in der Datenbank

Re: HSQLDB, Anzahl Datensätze in der Datenbank

von wega » Mi, 11.07.2007 07:44

Hallo Thomas,

danke für diesen Hinweis, wieder was dazu gelernt.

mit freundlichem Gruß
Werner

Re: HSQLDB, Anzahl Datensätze in der Datenbank

von Toxitom » Mi, 11.07.2007 07:04

Hallo Werner,

na ja, ob "kürzer" ist so eine Sache - zumindest aber "schneller" ;-)

Du durchläufst ja mit einer Schleife deinen Resultset. Das geht einfacher und schneller, wenn du deien Zeilencursor direkt auf die letzte Zeile setzt - und dann die Zeilennummer ausliest. Also in etwa so:

Code: Alles auswählen

...
Datenbankkontakt(Sql,ResultSet)
if not isNull(resultSet) then
   resultSet.last()
   ergebnis = resultSet.getRow()  'liefert die Nummer des aktuellen Datensates als Long, 1.Zeile = 1
...
Wichtig aber, dass der Resultset alle Datensätze beinhaltet - also nicht größenlimiitert ist und du wahlfrei springen kannst.

Viele Grüße
Thomas

HSQLDB, Anzahl Datensätze in der Datenbank

von wega » Di, 10.07.2007 22:44

Hallo zusammen,

während der Lebensdauer einer Datenbank werden auch schon einmal Datensätze gelöscht. somit stimmt z.B. die KundenID Nummer, wenn fortlaufend gezählt, nicht mehr mit der Anzahl der wirklich exestierenden Datensätzen überein.

Mit zwei Subroutinen kann ich die wirliche anzahl der datensätze auslesen.

Sub Datenbankkontakt (Sql,ResultSet)
Dim DbName as String 'Datenbankname
Dim DatabaseContext as Object 'Datenbankcontext
Dim DataSource as Object 'Datenbankquelle
Dim Connection as Object 'Verbindung
Dim Statement as Object 'SQL-Statement
dim Eingabe as String 'Eingabe in Inputbox
dim Ergebnis as String 'Auslesen des Resultset
dim i as Integer 'zum Prüfen der Datenfundmenge

Dbname = "Firma"
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName(Dbname)
Connection = dataSource.GetConnection("","")
Statement = Connection.createStatement()
ResultSet = Statement.executeQuery(Sql)
end Sub

sub Datensatzanzahl
Dim ResultSet as Object 'Ergebnis einer SQL-Abfrag
Dim Sql as String
Sql = "Select"
Sql = Sql +" count ('"
Sql = Sql +"KundenID"
Sql = Sql + "') from "
Sql = Sql + chr(34)+"Kunden"+chr(34)
Datenbankkontakt(Sql,ResultSet)
if not isNull(resultSet) then
while resultset.next
ergebnis = resultSet.getstring(1) + chr(44)
i=i+1
wend
else
msgbox "kein Ergebnis"
exit Sub
end if
Ergebnis = RTrim(left(ergebnis,(len(ergebnis)-1)))

if i=0 then
msgbox "kein Datensatz gefunden"
exit Sub
end if

msgbox ergebnis 'Anzahl Records = Datensätze <-------Hier die anzahl der wirlichen Datensätze.
end Sub

Ich würde mich freuen, wenn eine/r eine kürzere Möglichkeit gefunden hätte.

mit freundlichem Gruß
Werner

Nach oben