Zum Inhalt springen

SQL Statement im Serlvet geht nicht


Empfohlene Beiträge

Geschrieben

ich bin langsam am verzweifeln, ich hoffe mir kann jemand helfen

der MS SQL Treiber gibt eine Fehlermeldung aus:

SQL Fehler Ungültiger Objektname werkstattSQL.login.

die Datenbank auf dem Server heißt werkstattSQL, login ist eine Tabelle in der Datenbank.

aber selbst wenn ich den dbnamen weglasse(wie bei access), wird die tabelle login nicht erkannt.

Die Datenbank verbindung steht, habe ich da irgentwas vergessen ??? ich weiss nicht mehr weiter

GRuß


package bean;



import java.io.*;

import java.sql.*;

import javax.servlet.*;


public class Database_Bean {


	private Connection con;

	private String database;

	Log_Bean log = new Log_Bean();


	public Database_Bean() {


	 System.out.println("JDBC-Treiber laden und Verbindung aufbauen.");

              try { 

  	   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

	  } 

              catch (Exception extr) {

	   log.writeerrorlog(1001, "Teiber wurde nicht gefunden: " + 

                extr, "Database_Bean/Database_Bean()");

	   return;

	 }

	  database = "werkstattSQL.";

             try { 

	con = DriverManager.getConnection  ("jdbc:microsoft:sqlserver://dbserver:1433;User=user;Password=pw");

	log.writelog("DB-Verbindung erfolgreich aufgebaut");

	} catch (SQLException excon) {

	log.writeerrorlog(1002, "Verbindung konnte nicht aufgebaut  

            werden: "+ excon, "Database_Bean/Database_Bean()"); 

	return;

    }

	}


	public void destroy () {

	// Verbindung wird abgebaut

	System.out.println("Datenbankverbindung wird abgebaut.");

	try { 

	  con.close();

	} catch (SQLException excondown) {

	log.writeerrorlog(1003, "Verbindung konnte nicht getrennt

              werden: "+ excondown, "Database_Bean/destroy()");

	}

       }


	public boolean checkLogin(String username, String password) throws ServletException, IOException {

	String query = "select upw from " + database + " login where uname ='user2'";


	try { 

	Statement stmt = con.createStatement();

	ResultSet rs = stmt.executeQuery(query);

	rs.next();

	if(rs.getString("upw").equals(password)) {


	stmt.close();

	return true;

	} else {


	stmt.close();

	return false;

             }

       } catch(SQLException sqlex) {

         System.out.println("<B>SQLException doing query (chechLogin()): " +

         sqlex + "</B>");

         return false;

    }

  }

}


Geschrieben

Kann es sein, dass login ein reserviertes Wort ist? Oder dass zumindest der Treiber glaubt, es wäre reserviert?

Pack das mal in die verschiedenen Arten von Anführungszeichen bzw. schau in der Doku nach, welche Maskierung für Tabellennamen (bzw. Namen an sich) gültig ist, vielleicht geht es dann.

Bei uns - Sybase - ist es das einfache Anführungszeichen aka Hochkomma '

Peter

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...