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