User lacks privilege or object not found

MarDaiBre

Aktives Mitglied
Hallo,

ich habe mit der UCanAccess und HSQLDB eine Schnittstelle zu meiner MS Access DB programmiert. Alle bisherigen INSERT, UPDATE, DELETE und SELECT-Anweisungen funktionieren einwandfrei.

Nun möchte ich, dass beim Import (Risiken) aus einer Excel-Datei die einzelnen Felder in die zugehörigen Spalten einer Tabelle importiert werden. Die Methode funktioniert an anderer Stelle (Verursacher) ohne Probleme. Komischerweise bekomme ich aber beim Import von Risiken immer die Fehlermeldung: net.ucanaccess.jdbc.UcanaccessSQLException: user lacks privilege or object not found: R_ID

Ich habe per IF jedoch vorher noch eine Abfrage drin, ob das Risiko bereits existiert. Wenn ja, soll das Programm nur ein UPDATE machen, was auch funktioniert. Wenn nicht, einen INSERT. Beim INSERT bekomme ich die Fehlermeldung.

Hier mal ein Ausschnitt vom Coding:
Java:
query = "SELECT R_ID FROM Verursacherrisiko WHERE R_ID = '";
st = con.createStatement();
rs = st.executeQuery(query + k.getRid() + "'");  
            
if(rs.next())
{
      int qu = JOptionPane.showConfirmDialog(new JFrame(), "Das Risiko " + k.getRid() + " ist bereits in der Datenbank enthalten. Soll es mit den Werten der Excel-Datei überschrieben werden?", "Risiko bereits vorhanden!", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
                
      if(qu == JOptionPane.YES_OPTION)
      {
            st.executeUpdate("UPDATE Verursacherrisiko SET "
                            + "R_ID = '" + k.getRid()
                    + "', V_ID = '" + k.getVid()
                    + "', B_ID = '" + k.getOid()
                    + "', Q_ID = '" + k.getQuadrant()
                    + "', A_ID = '" + k.getAid()
                    + "', R_Fehlerursache = '" + k.getUrsache()
                    + "', R_Werkzeug = '" + k.getWerkzeug()
                    + "' WHERE R_ID = '" + k.getRid() + "';");
      }
}
            
else
{
      System.out.println("INSERT INTO Verursacherrisiko (R_ID, V_ID, B_ID, Q_ID, A_ID, R_Fehlerursache, R_Werkzeug) VALUES ("
                        + "R_ID = '" + k.getRid()
                + "', V_ID = '" + k.getVid()
                + "', B_ID = '" + k.getOid()
                + "', Q_ID = '" + k.getQuadrant()
                + "', A_ID = '" + k.getAid()
                + "', R_Fehlerursache = '" + k.getUrsache()
                + "', R_Werkzeug = '" + k.getWerkzeug()
                + "');");
                
    st.executeUpdate("INSERT INTO Verursacherrisiko (R_ID, V_ID, B_ID, Q_ID, A_ID, R_Fehlerursache, R_Werkzeug) VALUES ("
                        + "R_ID = '" + k.getRid()
                + "', V_ID = '" + k.getVid()
                + "', B_ID = '" + k.getOid()
                + "', Q_ID = '" + k.getQuadrant()
                + "', A_ID = '" + k.getAid()
                + "', R_Fehlerursache = '" + k.getUrsache()
                + "', R_Werkzeug = '" + k.getWerkzeug()
                + "');");
}
            
rs.close();
st.close();

Beim INSERT passiert dann lt. System.out.println folgendes:
INSERT INTO Verursacherrisiko (R_ID, V_ID, B_ID, Q_ID, A_ID, R_Fehlerursache, R_Werkzeug) VALUES (R_ID = 'R1050', V_ID = 'V9005', B_ID = '98152', Q_ID = 'Q34', A_ID = 'L4', R_Fehlerursache = 'HEUTE', R_Werkzeug = 'ABC33');

Wie gesagt: UPDATE funktioniert ohne Probleme und auch der INSERT mit Verursachern in einer anderen Klasse.

Hat da jmd einen hilfreichen Tipp, was das Problem sein könnte? Ich komme da echt nicht weiter und auch das Netz hat keinen nützlichen Rat. Ein Rechteproblem, wie es oft empfohlen wurde, kann es aus meiner Sicht nicht sein, da UPDATE funktioniert und INSERT in einer anderen Klasse.

Vielen Dank im Voraus.

Viele Grüße
 
Zuletzt bearbeitet von einem Moderator:

Kevin94

Top Contributor
Bist du dir sicher, dass du für die andere Tabelle das selbe SQL für INSERT hast? Weil das sieht für mich ziemlich nach einer sehr schlechten formulierten Fehlermeldung für nen Fehler im SQL aus, außerdem widerspricht der Befehlt meinen Kenntnissen von SQL (MySQL und H2). imo müsste der INSERT Befehl nämlich lauten:
Code:
INSERT INTO Verursacherrisiko (R_ID, V_ID, B_ID, Q_ID, A_ID, R_Fehlerursache, R_Werkzeug)
VALUES ( 'R1050', 'V9005', '98152', 'Q34', 'L4', 'HEUTE', 'ABC33');
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D HSQLDB user lacks privilege or object not found Datenbankprogrammierung 6
R Beste Lösung für User Erstellung in mongodb Datenbankprogrammierung 1
M Lösungsvorschläge für Multi-User Datenbankprogrammierung 1
P USER Management in SQL übergreifend auf JAVA Programm Datenbankprogrammierung 1
ruutaiokwu MySQL MariaDB-Client-Zertifkate, nur für einen bestimmten User Datenbankprogrammierung 5
H MySQL Benutzer Login System mit Datenbank Informationen (Abfrage zu User ist auf DB gesichert) Datenbankprogrammierung 42
D Multi User Datenbank Anwendung Datenbankprogrammierung 5
B MySQL installieren - silent / User anlegen Datenbankprogrammierung 3
J Datenbank: Methode wegen doppelten User Datenbankprogrammierung 1
S UPDATE user Datenbankprogrammierung 4
M MySQL User Eingaben in die DB einfügen Datenbankprogrammierung 7
P Mittels Java einen neuen MySQL User erstellen Datenbankprogrammierung 4
D MySQL User mit nur mit lokalen Lesezugriff und ohne Phpmyadmin Datenbankprogrammierung 4
F JPA und Klasse "User" Datenbankprogrammierung 3
H java.sql.SQLException: Access denied for user 'root'@'localhost' (using password : YES) Datenbankprogrammierung 1
G JDBC-Verbindung: User wechseln Datenbankprogrammierung 2
S JPA Hibernate: "The user must supply a jdbc connection" Datenbankprogrammierung 4
T Theoriefrage : mehrere User vs gleichen Datensatz Datenbankprogrammierung 4
1 User die Rechte eines Datenbankerstellers zuweisen? Datenbankprogrammierung 3
G iBatis Datenbankverbindung - DB-User übergeben Datenbankprogrammierung 4
minzel Access denied for user . Datenbankprogrammierung 10

Ähnliche Java Themen


Oben