Datenbankanfrage

dadom110

Erfahrenes Mitglied
Guten Tag,

die lieben Datenbanken haben es mir angetan, hatte so was ähnliches schon mal gemacht, und das funktioniert auch, aber bei meinem jetzigen Programmcode steckt irgendwo noch der Wurm drin.

mein connect:
Code:
try
		{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			
			dbcon=DriverManager.getConnection("jdbc:odbc:dbmov");
		    db_stat=dbcon.createStatement();
		 
		}
		catch (Exception SQLE)
		{
			System.out.println("SQL Error");
		}

Meine Anfrage auf die Datenbank, die keine Ergebnisse zurückliefer, obwohl Werte in der Datenbank, auf der Tabelle stehen:

Code:
ResultSet rs;
		String query="SELECT * from tblmov;";
		try
		{
			rs = db_stat.executeQuery( query );
			System.out.println("Es hat geklappt: " + rs.getRow());
		}
		catch(Exception e){System.out.println("SQL Error");
		}

schmeisst mir immer ne "0" aus, wenn ich versuche auf die Datensätze zu gehen (getstring) gibts nen error..die connection steht, auch, weil der Fehler besteht eben erst darin das er keine Werte findet :(

Mfg
Dom
 
Hi,

dadom110 hat gesagt.:
schmeisst mir immer ne "0" aus

Was meinst Du genau mit "0"?

Die Datenbank hast Du in ODBC eingetragen?

Wird dabei irgendwann einmal eine Exception geworfen? Wenn ja, dann lass Dir mal den Stacktrace dazu ausgeben und poste diesen dann hier.

Gruß

Romsl
 
HiHi

tut mir Leid für meine schlechte Umschreibung:

System.out.println("Es hat geklappt: " + rs.getRow());

der wirft mir ne 0 zurück, als würde es keine Daten in der Datenbank geben, aber da sind Werte drin, Keine Exception, rennt sauber durch.

ODBC ist eingetragen, bekommt ja auch seine Verbindung.. :(

Mfg
Dom
 
Hi,

Code:
rs.getRow()

gibt nur die Zeile zurück, auf der der Cursor gerade steht. Nicht die Anzahl der Tupel.

Versuchs doch mal mit

Code:
while (rs.next()) {
    ... = rs.getString(1);
}

Gruß

Romsl
 
Wie gesagt, dann wirft er mir den Fehler und steigt aus, in DebugModus hab ich dann so was wie

[Microsoft][ODBC Driver Manager] Ungültiger Cursorstatus

gefunden, falls das weiter hilft.

>> Fehler behoben, dank dir :) setze vorher nen rs.next(); dann geht es :D jetzt kann ich endlich beruhigt ins Wochenende starten, dank dir noch mal. Aber ist das normal das der erste "satz" vom RS "leer" ist?

Mfg
Dom
 
Zuletzt bearbeitet:
Hi,

der erste "Satz" ist nicht leer, sondern der Cursor steht noch nicht auf dem ersten Result.

Denke mal es rührt daher, um die while() verwenden zu können. Ansonsten wäre eine do-while von Nöten. Genau weiß ich das aber auch nicht, ist eben Implementierungssache ;-)

Bitte noch als ERLEDIGT markieren. DANKE.

Gruß und schönes Wochenende

Romsl
 
Zurück