Hallo,
habe nach intensivem Studium eines OOBasic-Buches keine Lösung für mein Problem.
Ich erstelle in einem Basic-Modul, das in einem Base-Formular aufgerufen wird ein Statement-Objekt und ein Resultset.
Nun möchte ich die Eigenschaft ResultsetCurrency auf UPDATABLE
und die Eigenschaft ResultSetType auf SCROLL_SENSITIVE stellen
Dies funktioniert beim übergeordneten Statement-Objekt, wenn ich dies aber beim REsultset mache, kommt folgende Fehlermeldung bei der Ausführung des Makros: "Leseproblem: Eigenschaft ist schreibgeschützt"
Habe im Dev-Forum von OOffice eine Artikel gefunden, wo jemand dasselbe Problem beschreibt. Aber es kann doch nicht sein, dass man in Basic ein ResultSet nicht verändern kann. Oder hab ich was übersehen?
Hier ein Auszug aus meinem Code:
Dim Odbcontext as Object
Dim Odatasource as Object
Dim Stabelle as Object
Dim oConnection as Object
Dim Schlagwortfeld as Object
Dim AbfrageListe as Object
Dim aStatement as Object
Dim bStatement as Object
Dim HauptTabelle as Object
Odbcontext=createUnoService("com.sun.star.sdb.DatabaseContext")
Odatasource=Odbcontext.getByName("FritzHerbstInventar")
STabelle=Odatasource.tables.getByName("SchlagwortListe")
HauptTabelle=Odatasource.tables.getByName("HauptInfos")
oConnection=Odatasource.GetConnection("","")
bStatement=oConnection.createStatement() 'erzeuge Statements
aStatement=oConnection.createStatement()
AbfrageListe=aStatement.executeQuery("Select ""Schlagwort"" FROM ""SchlagwortListe""")
Schlagwortfeld=bStatement.executeQuery("Select * FROM ""HauptInfos""")'wähle nur das, wo Sign gleich ist
Spaltennummer=Schlagwortfeld.findColumn("Schlagworte")
aStatement.ResultSetConcurrency=com.sun.star.sdbc.ResultSetConcurrency.UPDATABLE
aStatement.ResultSetType=com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE
Msgbox "Schreibgeschützt Statement:" & aStatement.ResultSetConcurrency & "Typ Statement:" &aStatement.ResultSetType
AbfrageListe.ResultSetConcurrency=com.sun.star.sdbc.ResultSetConcurrency.UPDATABLE
AbfrageListe.ResultSetType=com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE
Msgbox "Schreibgeschützt Results:" & AbfrageListe.ResultSetConcurrency & "Typ Resultset:" &AbfrageListe.ResultSetType
*************************************
Kann Eigenschaften eines Resultsets nicht ändern
Moderator: Moderatoren
Re: Kann Eigenschaften eines Resultsets nicht ändern
Du mußt erst den Typ des Resultset definieren und dann Deine Abfrage starten.
Die fertig erstellte Abfrage, also das mit Daten gefüllte ResultSet kannst Du nach meinem Verständnis nicht verändern.... warum auch?
Du weißt ja vorher, was Du damit vor hast.
Warum machst Du das überhaupt auf diese Weise? Du kannst doch die Daten direkt mit einem SQL-Statement verändern (executeUpdate).
Denk übrigens auch mal darüber nach was ein "executeQuery" bedeutet..... es liegt bereits im Namen - "Abfrage"
bStatement=oConnection.createStatement() 'erzeuge Statements
aStatement=oConnection.createStatement()
aStatement.ResultSetConcurrency=com.sun.star.sdbc.ResultSetConcurrency.UPDATABLE
aStatement.ResultSetType=com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE
AbfrageListe=aStatement.executeQuery("Select ""Schlagwort"" FROM ""SchlagwortListe""")
Schlagwortfeld=bStatement.executeQuery("Select * FROM ""HauptInfos""")'wähle nur das, wo Sign gleich ist
Spaltennummer=Schlagwortfeld.findColumn("Schlagworte")
Gruß eBayer
Die fertig erstellte Abfrage, also das mit Daten gefüllte ResultSet kannst Du nach meinem Verständnis nicht verändern.... warum auch?
Du weißt ja vorher, was Du damit vor hast.
Warum machst Du das überhaupt auf diese Weise? Du kannst doch die Daten direkt mit einem SQL-Statement verändern (executeUpdate).
Denk übrigens auch mal darüber nach was ein "executeQuery" bedeutet..... es liegt bereits im Namen - "Abfrage"
bStatement=oConnection.createStatement() 'erzeuge Statements
aStatement=oConnection.createStatement()
aStatement.ResultSetConcurrency=com.sun.star.sdbc.ResultSetConcurrency.UPDATABLE
aStatement.ResultSetType=com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE
AbfrageListe=aStatement.executeQuery("Select ""Schlagwort"" FROM ""SchlagwortListe""")
Schlagwortfeld=bStatement.executeQuery("Select * FROM ""HauptInfos""")'wähle nur das, wo Sign gleich ist
Spaltennummer=Schlagwortfeld.findColumn("Schlagworte")
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008