SQL- Befehl, Ergebnisausgabe mit Resulset

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

daria83
Beiträge: 1
Registriert: Di, 11.10.2005 10:05

SQL- Befehl, Ergebnisausgabe mit Resulset

Beitrag von daria83 »

Hallo ihrs,
hier erstmal der Code:
Sub Abfrage
dim DatabaseContext as Object
dim DataSource as Object
dim Connection as Object
dim Statement as Object
dim Resultset as Object
dim Query as String
Query = "Select * FROM Daten"
DatabaseContext=createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource= DatabaseContext.getByName("DB1")
Connection = DataSource.GetConnection("","")
Statement = Connection.createStatement()
Resultset = Statement.executeQuery(Query)
while ResultSet.next()
MsgBox ResultSet.getString( 1 )
wend
ResultSet.close()
Statement.close()
Connection.close()
end sub

Nun tritt dieser Fehler auf:
Type: com.sun.star.sdbc.SQLException
Message: Table not found in Statement (Select * from Daten)

Wo liegt der Fehler?
Danke für die Hilfe :)

Tschau
BodoBaller
Beiträge: 3
Registriert: Di, 11.10.2005 15:36

Beitrag von BodoBaller »

Hallo Daria,
ich habe genau diesselbe Felhlermeldung. Dein Quellcode scheint mir in Ordnung, die drei close-Anweisungen unten erscheinen mir überflüssig, aber egal.
Ich denke, weil er die Tabelle nicht kennt: es besteht keine Verbindung zur DB.
In OO 1.x konnte man Datenquellen verwalten mir EXTRAS/ DATENQUELLEN, diese Menüführung gibt es bei 2.0 nicht mehr.
Allerdings wird nach Erstellen einer DB mit Tabellen abgefragt, ob die Datenquelle registriert werden soll. Das habe ich auch bejaht.
Ich habe ein Formular neu erzeugt (du auch?) , vielleicht kennt das Makro des Formulars nicht die Datenquelle? Aber dann hätte es vielleicht beim aufrufen der Datenbank in deinem Quellcode weiter oben eine Fehlermeldung geben sollen.
Ich kann mir kaum vorstellen dass das ein Bug ist.
Gruß Bodo
BodoBaller
Beiträge: 3
Registriert: Di, 11.10.2005 15:36

Beitrag von BodoBaller »

Hallo,
ich denke, an der Verbindung mit der DB kanns nicht liegen, denn mit dem Code

if DatabaseContext.hasByName("Datenbankname") then
Connection = DataSource.GetConnection("","")
MsgBox " DB-Verbindung besteht"
else ....
endif

kann geprüft werden, ob die DB bekannt ist und man stellt eine Verbindung her. Alles bei mir ohne Fehlermeldung!
Ich denke auch, an den Treibern kanns nicht liegen, da bei Erstellung der DB in Base, diese automatisch eingestellt werden.
Trotzdem kommt die Fehlermeldung. Habe auch alle Hochkommakombinationen für den Tabellennamen probiert.

Es kann doch nicht sein, dass man mit Makros + SQL-Kommandos keine Tabellen aufrufen kann. Verwende 2.0RC3 Windows.

Weiß da jemand woran das liegt?

Gruß Bodo
BodoBaller
Beiträge: 3
Registriert: Di, 11.10.2005 15:36

Beitrag von BodoBaller »

Hallo
an Daria und all:

Weiß hier keiner eine Lösung, es kann doch nicht sein , dass man Base nicht von einem Makro aus aufrufen kann, weil er angeblich den Tabellennamen nicht kennt.
Habe es selbst mit 2.0.0 / Windows probiert , immer die gleiche Fehlermeldung.

Gruß Bodo
Blaimi
Beiträge: 9
Registriert: Mi, 31.05.2006 20:19
Wohnort: Obersulm 74182
Kontaktdaten:

Beitrag von Blaimi »

Ich habs....

("SELECT * FROM ""Table""")
Linux is like a Teepee: No Windows, no Gates and an Apache is inside
Antworten