Exception bei ResultSet.moveToInsertRow

Status
Nicht offen für weitere Antworten.
D

DreamDander

Gast
Hallo Leute,

fange gerade erst an mit Java und JDBC auf einer Oracle Datenbank zu programmieren.
Da ich es von VB gewohnt bin mit RecordSets ( in Java ja ResultSet ) zu programmieren, wollte ich auch nun in Java alles über das ResultSet Objekt machen.

Nur bekomme ich jetzt beim einfügen von einem neuen Datensatz den folgenden Fehler:

java.sql.SQLException: Ungültiger Vorgang bei schreibgeschützter Ergebnismenge: moveToInsertRow
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBE rror.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBE rror.java:179)
at oracle.jdbc.driver.BaseResultSet.moveToInsertRow(B aseResultSet.java:628)
at test3.main(test3.java:59)

Habe aber beim erstellen des Statements darauf geachtet das es UPDATABLE ist.

Hier der Code:

Code:
try
{
                
	            SelectStmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
	                    				ResultSet.CONCUR_UPDATABLE);
	          
	            String Query = "Select * from test";
	            rSet = SelectStmt.executeQuery(Query);
	            
	            rSet.moveToInsertRow();
	            rSet.updateInt("id",1);
	            rSet.updateInt("value",2);
	            rSet.insertRow();

Als Treiber verwende ich den jdbc:eek:racle:thin von Oracle.

Hoffe ihr könnt mir helfen, bin schon am verzweifeln.
Mfg DreamDancer
 

abollm

Top Contributor
Kannst du ein wenig mehr Code posten?
Wenn ja, dann ist die Wahrscheinlichkeit, dass dir hier geholfen wird, sicherlich größer.
 

bambi

Bekanntes Mitglied
Hab' bis jetzt auch noch nichts mit moveToInsertRow() gemacht.
Was ist denn der Vorteil davon - wenn wir gerade mal beim Thema sind? Ansonsten: ich hab'
mal in die API gesehen. Demnach sieht's schon vom Ansatz her richtig aus. Es ware also das
Beste, wenn Du mal schreibst in welcher Zeile genau Du die Exception bekommst. Dann kann
man sicher mehr sagen.

THX
 
D

DreamDander

Gast
Also der Fehler tritt auf in Zeile 11.

Und vor dem hier geposteten Code wird nur noch die DB geöffnet und zwar wie folgt:


Code:
final String connect_string = "jdbc:oracle:thin:username/password@DB:Port:Schema";
        Connection conn;
        
        try
        {
            DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
            conn = DriverManager.getConnection (connect_string);
            
        }
        catch( Exception e)
        {
            System.out.println( e );
            return;
        }


Ich bin das arbeiten mit ResultSets von VB her gewohnt, so kann man dort auch nocheinmal die Daten die sich im ResultSet befinden Filtern, ohne das eine erneute Abfrage auf die Db ausgeführt wird.Weiß einer von euch ob das mit den Java ResultSets auch geht? Hab so ne Methode noch nicht gefunden.

MfG DreamDancer
 

Bleiglanz

Gesperrter Benutzer
DriverManager.registerDriver (new oracle.jdbc.OracleDriver());

WARUM?

=> Datenbank Treiber haben i.A. einen Initialisierungscode (static) der selbst dafür sorgt, dass sie sich beim DriverManager registieren

verwende die Variante mit Class.forName!
+

rs.getType
rs.getConcurrency

aufrufen ob das resultset passt

+

ruf mal über die Metadaten

supportsResultsetType
supportsResultsetConcurrency

auf (ob das mit deinem Treiber überhaupt geht)

+

lass mal die Warnings deines ConnectionsObjekts ausgeben

+
Ich bin das arbeiten mit ResultSets von VB her gewohnt, so kann man dort auch nocheinmal die Daten die sich im ResultSet befinden Filtern, ohne das eine erneute Abfrage auf die Db ausgeführt wird.Weiß einer von euch ob das mit den Java ResultSets auch geht? Hab so ne Methode noch nicht gefunden.
google mal such mal nach RowSet, ein normales ResultSet kann man nicht "filtern", es entspricht überhaupt nicht dem, was du von VB her kennst
 
D

DreamDander

Gast
also hab jetzt mal wie du sagtest alles durchgecheckt.

Und herraus gekommen ist:

Die Datenbank lässt den concurrency Mode ResultSet.CONCUR_UPDATABLE zu, auch die Kombination aus
ResultSet.TYPE_SCROLL_SENSITIVE und ResultSet.CONCUR_UPDATABLE wird unterstützt.

Nach erstellen des Statements liefert mir getResultSetConcurrency ResultSet.CONCUR_UPDATABLE .
Allerdings gibt mir das ResultSet beim aufrufen von getConcurrency() ResultSet.CONCUR_READ_ONLY zurück.
Das Statement hat nach dem erstellen aber immer noch den Concurreny Typ CONCUR_UPDATABLE.



Das mit den RowSets hab ich mir schonmal angeschaut, da gibts ja dieses FilteredRowSet, was aber scheinbar auch nicht das is was ich aus VB her kenne. Anscheinend ist es dort ja nur möglich Ranges zu definieren in denen sich die Daten befinden sollen. Ich kenne es so das ichim Filter quasi nochmal mit SQL den Teil der WHERE Bedingung einsetzen kann und dann dementsprechend nur auf den Filter zutreffende Sätze im Recordset angezeigt werden.

Gibts da nicht so etwas auch in Java?
Oder wie läuft das dann mit großen Daten ab?

Muss wegen jeder spezielleren Abfrage ein neuer Query an die Datenbank abgesetzt werden?
Erzeugt doch erheblich mehr Traffic.

MfG DreamDancer
 
G

Gast

Gast
versuch es mal mit
String Query = "Select test.* from test"
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Exception ResultSet Datenbankprogrammierung 7
S ResultSet einer Datenbankabfrage - Nullpointer Exception Datenbankprogrammierung 13
KOKASS Exception bei Datenbankconnect Datenbankprogrammierung 9
Kirby.exe SQL-Exception: Column not found Datenbankprogrammierung 6
S MySQL hibernate exception: illegal state exception : entityManagerFactory is closed Datenbankprogrammierung 5
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
G PostgreSQL Nach Monaten auf einmal ClassNotFound-Exception Datenbankprogrammierung 3
K JPA Projekt Exception Datenbankprogrammierung 7
C jpa, exception Predeployment of PersistenceUnit failed Datenbankprogrammierung 1
M CommunicationLinkError - NullPointer Exception Datenbankprogrammierung 11
T MongoDB: Morphia REST 505 Exception Tomcat Datenbankprogrammierung 2
M SQL-Exception trotz funktionierendem SELECT Datenbankprogrammierung 4
N JDBC: rollback() bei Exception geht nicht!? Datenbankprogrammierung 1
M SQL Exception Datenbankprogrammierung 6
L Probleme mit DriverManager.getConnection(..) - Endlosschleife, Java Absturz, Keine Exception Datenbankprogrammierung 4
D Hibernate SaveOrUpdate Exception Datenbankprogrammierung 2
E MySQL Hibernate mit JaxWS führt zu LazyInitialization Exception Datenbankprogrammierung 8
E PostgreSQL Exception too ...many clients already bei DB-Abfrage Datenbankprogrammierung 14
T java sql exception getDate() Datenbankprogrammierung 2
O Viele Verbindungen-Exception bei insert Daten zur MySQL-Datenbank Datenbankprogrammierung 2
E Sql Exception Datenbankprogrammierung 14
M NestedTransaction- Exception in Hibernate Datenbankprogrammierung 15
F Derby/JavaDB SQL-Exception...Aber wieso!? :/ Datenbankprogrammierung 2
Paristick MSSQL - JDBC Exception beim Registrieren Datenbankprogrammierung 5
S Null Pointer exception statement Datenbankprogrammierung 8
G JDBC Exception Datenbankprogrammierung 3
F Derby/JavaDB Exception - Cannot accept Null Value (help) Datenbankprogrammierung 10
G Stored Procedure Exception Handling Datenbankprogrammierung 3
C SQL Exception auf Unique überprüfen Datenbankprogrammierung 5
B Hibernate+JPA Exception in persistence.xml Datenbankprogrammierung 5
L SQL Exception Problem Datenbankprogrammierung 7
M hilfe zur einer Exception Datenbankprogrammierung 2
J Nullpointer Exception bei Zugriff auf Datenbank Datenbankprogrammierung 13
A MySQL Anbindung - Exception Handling Datenbankprogrammierung 2
R SQL Exception: Cursor position not valid Datenbankprogrammierung 7
O Oracle 11g wirft bei 90 % der installation eine Exception ? Datenbankprogrammierung 5
R Warum kommt eine Exception bei instanceof ? Datenbankprogrammierung 4
B SQL Exception Datenbankprogrammierung 9
E Datenbankverbindung Java MySQL Exception Datenbankprogrammierung 10
N Class not found Exception Datenbankprogrammierung 2
A Exception in thread "AWT-EventQueue-0" java.lang.N Datenbankprogrammierung 4
M SQL Exception bei LIMIT Datenbankprogrammierung 11
megachucky Problem mit: SQL Exception Before start of result set Datenbankprogrammierung 2
W updateRow() schmeißt eine Exception, weil schreibgeschützt Datenbankprogrammierung 6
M Sql Anfrage wirft Exception Datenbankprogrammierung 5
6 Communications link failure due to underlying exception Datenbankprogrammierung 10
R SQL Exception "Weiterleiten der Egebnissmenge" Datenbankprogrammierung 15
märliprinz Exception in thread "main" java.lang.OutOfMemoryEr Datenbankprogrammierung 9
S Java SQL-Exception bei Zugriff auf MSAccess Datenbankprogrammierung 2
K Exception bei Verbindungsaufbau Oracle Datenbank Datenbankprogrammierung 13
L "desc tablename" liefert SQL Exception mit execute Datenbankprogrammierung 6
M SQL Exception Datenbankprogrammierung 3
M Problem mit dem ActionListener und SQL Exception Datenbankprogrammierung 6
EagleEye problem mit exception Datenbankprogrammierung 2
L UPDATE löst Exception aus Datenbankprogrammierung 6
V Exception beim Speichern von eingegebenen Daten in Tabelle Datenbankprogrammierung 2
G ich bekomm immer die exception grrrr Datenbankprogrammierung 3
D Unklare SQL Exception Datenbankprogrammierung 3
S ResultSet als Parameter an andere Klasse übergeben Datenbankprogrammierung 3
Z ResultSet ist null warum? Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
Dimax Erstellen ResultSet und Statement Datenbankprogrammierung 30
C PostgreSQL ResultSet.TYPE_SCROLL_SENSITIVE setzen Datenbankprogrammierung 2
L MySQL Bekomme einen Fehler beim ResultSet Datenbankprogrammierung 12
L Zugriff auf ein Resultset Datenbankprogrammierung 7
L MySQL ResultSet vollständig auslesen Datenbankprogrammierung 20
D Resultset schließen ?? Datenbankprogrammierung 5
T Oracle Resultset to Array sehr langsam. Datenbankprogrammierung 8
B Probleme mit java.sql.SQLException: ResultSet closed Datenbankprogrammierung 21
J SQLite ResultSet closed -- Wiederholende DB-Abfragen Datenbankprogrammierung 6
Z MySQL Probleme mit resultSet executQuery Datenbankprogrammierung 3
L ResultSet Datenbankprogrammierung 1
J wie mit resultset.next() über Datensätze iterieren? Datenbankprogrammierung 15
R MySQL Umgang mit ResultSet/Fremdschlüssel ausgeben Datenbankprogrammierung 2
D MySQL ResultSet als Stream weiter geben Datenbankprogrammierung 9
M ResultSet Cachen Datenbankprogrammierung 3
R ResultSet mit "Untertabellen" Datenbankprogrammierung 4
N SQL-Statement Auslesen des Resultset wird immer langsamer Datenbankprogrammierung 6
R Resultset.last() Problem Datenbankprogrammierung 12
PaulG Leeres ResultSet initialisieren Datenbankprogrammierung 6
J Frage zu ResultSet Datenbankprogrammierung 3
J SQL ResultSet Previous Datenbankprogrammierung 10
S MySQL ResultSet in ein Array übertragen Datenbankprogrammierung 7
H PostgreSQL Objekte aus ResultSet Datenbankprogrammierung 5
H ResultSet is closed tritt bei JSF aber nicht bei einer Java-Applikation auf Datenbankprogrammierung 10
O Oracle Resultset greift auf Spaltenüberschriften zu Datenbankprogrammierung 2
Kenan89 Wieso klappt das ResultSet nicht? Datenbankprogrammierung 3
C ResultSet enthält nicht alle Daten Datenbankprogrammierung 4
F Derby/JavaDB Resultset in JTablemodel Datenbankprogrammierung 2
F Oracle ResultSet zu einer HashMap<Integer, String[]> Datenbankprogrammierung 6
B SQLite ResultSet is TYPE_FORWARD_ONLY Datenbankprogrammierung 5
0 ResultSet in JTable Datenbankprogrammierung 14
S [SQL] ResultSet Datenbankprogrammierung 4
R ResultSet Datenbankprogrammierung 4
I Sonderbehandlung wenn ResultSet leer ist Datenbankprogrammierung 9
I Problem mit ResultSet Datenbankprogrammierung 2
I SQL_Abfrage-Ergebnis (ResultSet) in String[] speichern Datenbankprogrammierung 29
B ResultSet wirft komische NullPointerException. Datenbankprogrammierung 3
R Detached ResultSet Datenbankprogrammierung 3
F generelle Vorgehensweise ResultSet Datenbankprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben