startup Geschrieben 7. Juni 2002 Geschrieben 7. Juni 2002 Hallo, kann mir jemand bei diesen Fehlermeldugen weiter helfen?? import java.sql.*; import java.io.*; public class Test { Connection conn = null; public static void main (String args []) throws SQLException { Test pgm = new Test(); DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); pgm.conn = DriverManager.getConnection ("jdbc:oracle:thin:@xxx:xxx:xxxx", "xxx", "xxxx"); Statement stmt = pgm.conn.createStatement(); ResultSet rset = stmt.executeQuery ("select aufnr from command"); while (rset.next ()) System.out.println (rset.getString (1)); } } Erste Classe für die DB Verbindung import java.sql.*; import java.io.*; public class Test1 extends Test{ public void db()throws SQLException{ try{ Statement stm = conn.createStatement(); ResultSet rset = stm.executeQuery("select * from tb1"); ResultSetMetaData stm = rset.getMetaData(); int y = stm.getColumnCount(); }catch (IOException err) { System.out.println("Fehler \n" +err); } } } Zweite Classe für SQL Abfrage! Bekomme aber in der zweiten Classe diese Ferhlermeldungen: Test1.java [11:1] stm is already defined in db() ResultSetMetaData stm = rset.getMetaData(); ^ Test1.java [12:1] cannot resolve symbol symbol : method getColumnCount () location: interface java.sql.Statement int y = stm.getColumnCount(); Woran kann das liegen??????? Zitieren
ExAzubi Geschrieben 7. Juni 2002 Geschrieben 7. Juni 2002 Hallo, das mit dem getcolumnCount() liegt daran, das du die Methode auf dem Statement aufrufst, das geht nicht, du mußt sie Entweder auf dem ResultSet oder ResultMetaData aufrufen, bin mir da auch im moment nicht ganz sicher. Aber auf jeden fall auf einen von den beiden. Der erse Fehler, du versuchst das ResultMetaDataSet in ein Statement zu setzen, das geht nicht. mach dir lieber eine ReseltMetaData rsmd = rset.getMetaData; Das müste es eigentlich gewesen sein. Übernehme aber keine Verantwortung:) Zitieren
startup Geschrieben 7. Juni 2002 Autor Geschrieben 7. Juni 2002 hab ich auch grade gemerkt, aber danke. War noch die Müdigkeit, jetzt läuft es. Aber gibt mir in der Methode Test1 keine Ausgabe, Bildschirm bleibt leer. import java.sql.*; import java.io.*; public class Test1 extends Test{ public void Test1()throws SQLException{ System.out.println("Hello"); try{ Statement stm = conn.createStatement(); ResultSet rset = stm.executeQuery("select * from sa06tab"); ResultSetMetaData stm1 = rset.getMetaData(); int y = stm1.getColumnCount(); while(rset.next()){ System.out.println(rset.getString(1)); System.out.println("Hello"); } }catch (SQLException err) { System.out.println("Fehler \n" +err); } } } habe es schon mit this.test1(); oder test1(); probiert gibt aber nur Fehlermeldungen. Zitieren
Jaraz Geschrieben 7. Juni 2002 Geschrieben 7. Juni 2002 Hallo, Original geschrieben von startup probiert gibt aber nur Fehlermeldungen. schön und welche? Meine Kristallkugel ist nämlich gerade kaputt. public void Test1()throws SQLException{ ist schon mal eine Mischung aus Konstruktor und Funktion. Ich kann mir nicht vorstellen, dass das überhaupt compiliert wird. Gruß Jaraz Nachtrag: Compilen geht, also sollte die Syntax stimmen. Obwohl ich das sehr ungewöhnlich finde. Dann hilft nur noch die Fehlermeldung. Zitieren
startup Geschrieben 7. Juni 2002 Autor Geschrieben 7. Juni 2002 Okay da hast du wohl recht! import java.sql.*; import java.io.*; public class SQLAbfrage extends DBZugriff{ public void DB()throws SQLException{ System.out.println("Hello"); try{ Statement stm = conn.createStatement(); ResultSet rset = stm.executeQuery("select * from sa06tab"); ResultSetMetaData stm1 = rset.getMetaData(); int y = stm1.getColumnCount(); while(rset.next()){ System.out.println(rset.getString(1)); System.out.println("Hello"); } }catch (SQLException err) { System.out.println("Fehler \n" +err); } } db(); } Fehlermeldung: SQLAbfrage.java [21:1] invalid method declaration; return type required db(); ^ 1 error Errors compiling class SQLAbfrage. Ich verstehe das mit dem return net, wenn darin liegst was muß ich da machen? Grüße startup Zitieren
Jaraz Geschrieben 7. Juni 2002 Geschrieben 7. Juni 2002 import java.sql.*; import java.io.*; public class SQLAbfrage extends DBZugriff{ //Konstruktor public SQLAbfrage(){ this.db(); } //Funktionsnamen sollten immer klein anfangen public void db()throws SQLException{ System.out.println("Hello"); try{ Statement stm = conn.createStatement(); ResultSet rset = stm.executeQuery("select * from sa06tab"); ResultSetMetaData stm1 = rset.getMetaData(); int y = stm1.getColumnCount(); while(rset.next()){ System.out.println(rset.getString(1)); System.out.println("Hello"); } }catch (SQLException err) { System.out.println("Fehler \n" +err); } } }[/PHP] Versuchs mal so. Zitieren
startup Geschrieben 7. Juni 2002 Autor Geschrieben 7. Juni 2002 Tut mir leid funkzioniert nicht, kommt: SQLAbfrage.java [8:1] unreported exception java.sql.SQLException; must be caught or declared to be thrown this.db(); ^ 1 error Errors compiling class SQLAbfrage. Danke. Zitieren
Jaraz Geschrieben 7. Juni 2002 Geschrieben 7. Juni 2002 Stimmt, habe ich übersehen. public void db()throws SQLException{ da du alle SQL Aufrufe im try catch Block hast, ist throws SQLException überflüssig. Gruß Jaraz Zitieren
startup Geschrieben 7. Juni 2002 Autor Geschrieben 7. Juni 2002 Tut mir leid das hatt ich auc schon, es startet gibt mir rückgabe Wert von da Tabelle. Und das wars nix von Hello oder Daten zusehen! Was nun? Gruss Startup Zitieren
Jaraz Geschrieben 7. Juni 2002 Geschrieben 7. Juni 2002 Ich habe deine Klasse jetzt mal kurz in mein Projekt kopiert und habe keine Probleme damit. Also muss der weitere Code deines Programms fehlerhaft sein. Gruß Jaraz Zitieren
startup Geschrieben 7. Juni 2002 Autor Geschrieben 7. Juni 2002 Ich habe nur nie zwei Classen, die erste die auf die Datenbank zugreift, und die zweite die die das Sql abfrägt. Habe auch beide gepostet, an kann es denn noch liegen????? Danke Startup Zitieren
Empfohlene Beiträge
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.