OpenOffice/ODBC-Verküpfung/Terminal-Server
Moderator: Moderatoren
OpenOffice/ODBC-Verküpfung/Terminal-Server
Hallo an Alle!
Erst mal ein dickes Danke an die Mitglieder dieses Forum. Ihr habt mir mit euren Beiträgen bei der Lösung vieler Probleme, welche ich bei der Umsetzung eines Projektes hatte, geholfen.
Nun eine Frage: Wer kann mit folgeder Fehlermeldung etwas anfangen?
BASIC-Laufzeitfehler.
Es ist eine Exeption aufgetreten
Type: com.sun.star.sdbc.SQLExeotion
Message: [IBM][iSeries Access ODBC-Treiber]Operation ist momentan ungültig.
Zur Info:
In eine Dialogmaske soll der Anwender eine Kundennummer eingeben. Diese wird dann auf unseren Server gesucht und dann der Kundendatensatz zurück gegeben. Auf einem "normalen" PC im Netzwerk funktioniert es einwandfrei. Nur bei Clients, welche am Terminalserver arbeiten geht es nicht. (Win2003Server)
Vielleicht hat jemand noch einen Tipp, wo man suchen kann. Ich wäre sehr dankbar! Dies wäre das letzte Problem, was zu lösen wäre bei uns in der Firma. Danach steht einer Umstellung von MSOffice zu OpenOffice nichts mehr im weg.
Gruß, Saturus.
Erst mal ein dickes Danke an die Mitglieder dieses Forum. Ihr habt mir mit euren Beiträgen bei der Lösung vieler Probleme, welche ich bei der Umsetzung eines Projektes hatte, geholfen.
Nun eine Frage: Wer kann mit folgeder Fehlermeldung etwas anfangen?
BASIC-Laufzeitfehler.
Es ist eine Exeption aufgetreten
Type: com.sun.star.sdbc.SQLExeotion
Message: [IBM][iSeries Access ODBC-Treiber]Operation ist momentan ungültig.
Zur Info:
In eine Dialogmaske soll der Anwender eine Kundennummer eingeben. Diese wird dann auf unseren Server gesucht und dann der Kundendatensatz zurück gegeben. Auf einem "normalen" PC im Netzwerk funktioniert es einwandfrei. Nur bei Clients, welche am Terminalserver arbeiten geht es nicht. (Win2003Server)
Vielleicht hat jemand noch einen Tipp, wo man suchen kann. Ich wäre sehr dankbar! Dies wäre das letzte Problem, was zu lösen wäre bei uns in der Firma. Danach steht einer Umstellung von MSOffice zu OpenOffice nichts mehr im weg.
Gruß, Saturus.
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Hallo Saturus,
mir sagt lediglich der Ausdruck iSeries etwas. Dies ist die neue Bezeichnung des früheren IBM-Midrange-Systems AS/400. Bedeutet dies, dass Du Daten von einer DB/400 Datenbank per ODBC-Treiber holen möchtest ? Wenn der ODBC-Treiber auf dem TS installiert ist, sind es möglicher Weise Berechtigungsprobleme.
Gruß
Peter
mir sagt lediglich der Ausdruck iSeries etwas. Dies ist die neue Bezeichnung des früheren IBM-Midrange-Systems AS/400. Bedeutet dies, dass Du Daten von einer DB/400 Datenbank per ODBC-Treiber holen möchtest ? Wenn der ODBC-Treiber auf dem TS installiert ist, sind es möglicher Weise Berechtigungsprobleme.
Gruß
Peter
Danke erstmal für die schnelle Antwort.
Ja, es handelt sich um eine AS/400 Maschine. Der ODBC-Treiber ist auf dem TS installiert. An Berechtigungsprobleme dachten wir auch schon. Testweise haben wir einen Testnutzer sogar ADMIN-Rechte gegeben. Dies hat auch nicht geholfen.
Der Datenbankzugriff von OpenOffice klappt soweit ja auch. Mit hilfe von OpenBase haben wir einen Abfrage erstellt, welche die Daten in gleicher Weise abfragt, wie das Script. Dort wird das Ergebnis in Tabellenform korrekt ausgegeben.
Gibt es die Möglichkeit, dass der Service "com.sun.star.sdbc.SQLExeotion" auf einem TS nicht korrekt funktioniert?
Gruß Saturus
Ja, es handelt sich um eine AS/400 Maschine. Der ODBC-Treiber ist auf dem TS installiert. An Berechtigungsprobleme dachten wir auch schon. Testweise haben wir einen Testnutzer sogar ADMIN-Rechte gegeben. Dies hat auch nicht geholfen.
Der Datenbankzugriff von OpenOffice klappt soweit ja auch. Mit hilfe von OpenBase haben wir einen Abfrage erstellt, welche die Daten in gleicher Weise abfragt, wie das Script. Dort wird das Ergebnis in Tabellenform korrekt ausgegeben.
Gibt es die Möglichkeit, dass der Service "com.sun.star.sdbc.SQLExeotion" auf einem TS nicht korrekt funktioniert?
Gruß Saturus
Danke für den Tipp. Der Zugriffsrechte von Seiten der AS/400 geht auch alles klar. Dies haben wir durch eine manuelle Abfrage mit den gleichen Benutzerkonto (auf der AS/400) geprüft.
Hier mal kurz das Script, um das es sich handelt:
Sub KundNrNachschlagen
Dim oDoc as Object
Dim sDBName as String
Dim oDBConnection,oDVContext,oDataSource,oStatement,oResultset as Object
DIM Sql as String
Dim Adresse as String
Dim COName,Name1,Name2,Name3,Strasse,Land,PLZ,Ort as string
Aktivierung Datenbankabfragen
sDBName = "Adressen_AS400"
oDoc=thiscomponent
oDBContext=CreateUnoService("com.sun.star.sdb.DatabaseContext")
oDataSource=oDBContext.GetByName(sDBName)
oDBConnection=oDataSource.GetConnection("*****","*****")
oStatement=oDBConnection.createStatement()
SQL = "select kndsta.kndstacomp,kndsta.kndstakey,adrsta.ADRSTANM1,adrsta.ADRSTANM2, ADRSTA.* from Therfecht.kndsta as kndsta join therfecht.adrsta as adrsta on kndstacomp = adrstacomp and kndstaadr = adrstakey where KNDSTACOMP = 'TEST' and KNDSTAKEY = " + dlg.getcontrol("Feld_KundenNr").text
Datenbankergebnis
oResultset=oStatement.executeQuery(SQL)
Datenbankauswertung
if oresultset.first = false then
msgbox "Nix da"
else
oResultSet.first
MsgBox trim(oresultset.getstring(2)) + " = " + [crlf ] + TRIM(oResultSet.getstring(3 )) + " , " + TRIM( oResultSet.getstring(4 ))
endif
End Sub
Bei der Zeile "if oresultset.first = false then" kommt oben genannte Fehlermeldung, aber auch nur auf einen Client und nicht auf einen "richtigen" PC.
Gruß, Saturus.
Hier mal kurz das Script, um das es sich handelt:
Sub KundNrNachschlagen
Dim oDoc as Object
Dim sDBName as String
Dim oDBConnection,oDVContext,oDataSource,oStatement,oResultset as Object
DIM Sql as String
Dim Adresse as String
Dim COName,Name1,Name2,Name3,Strasse,Land,PLZ,Ort as string
Aktivierung Datenbankabfragen
sDBName = "Adressen_AS400"
oDoc=thiscomponent
oDBContext=CreateUnoService("com.sun.star.sdb.DatabaseContext")
oDataSource=oDBContext.GetByName(sDBName)
oDBConnection=oDataSource.GetConnection("*****","*****")
oStatement=oDBConnection.createStatement()
SQL = "select kndsta.kndstacomp,kndsta.kndstakey,adrsta.ADRSTANM1,adrsta.ADRSTANM2, ADRSTA.* from Therfecht.kndsta as kndsta join therfecht.adrsta as adrsta on kndstacomp = adrstacomp and kndstaadr = adrstakey where KNDSTACOMP = 'TEST' and KNDSTAKEY = " + dlg.getcontrol("Feld_KundenNr").text
Datenbankergebnis
oResultset=oStatement.executeQuery(SQL)
Datenbankauswertung
if oresultset.first = false then
msgbox "Nix da"
else
oResultSet.first
MsgBox trim(oresultset.getstring(2)) + " = " + [crlf ] + TRIM(oResultSet.getstring(3 )) + " , " + TRIM( oResultSet.getstring(4 ))
endif
End Sub
Bei der Zeile "if oresultset.first = false then" kommt oben genannte Fehlermeldung, aber auch nur auf einen Client und nicht auf einen "richtigen" PC.
Gruß, Saturus.
Hey all,
also, die Exception deutet darauf hin, dass die Verbindung zur Datenquelle fehlerhaft war bzw. aktuell nicht möglich ist.
Zu dem Zeitpunkt an sich merkwürdig.
Kann ich im Moment wenig zu sagen - hab allerinds auch keine Zeit, mich tiefer damit zu befassen.
@Saturnus:
Der Code hat einige Ungenauigkeiten - da müsste mal überarbeitet werden.
Gruss
Thomas
also, die Exception deutet darauf hin, dass die Verbindung zur Datenquelle fehlerhaft war bzw. aktuell nicht möglich ist.
Zu dem Zeitpunkt an sich merkwürdig.
Kann ich im Moment wenig zu sagen - hab allerinds auch keine Zeit, mich tiefer damit zu befassen.
@Saturnus:
Der Code hat einige Ungenauigkeiten - da müsste mal überarbeitet werden.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic