Hallöle
Ich habe eine MS Access DB. Die Verbindung an sich besteht auch.
Ich möchte nun eine SQL Abfrage durchführen. Diese Abfrage steht in einer for-Schleife, weil ich keine Lust habe, 20x den SQL-Befehl umzuändern. Die Werte im int[] kostenstellen sind dann die Einträge, nach denen ich suchen will. Ich bekomme aber immer die unten aufgeführte Fehlermeldung mit "Column not found: 0". Der Spaltenname ist aber KstStNr, so wie er auch in dem SQL-Befehl steht... Weiß jemand ne Lösung??
Später will ich für jede "KstStNr", bestehend aus mehreren WHERE Bedingungen (noch ausgeklammert) die Summe der Werte berechnen und speichern.
Fehlermeldung:
Code:
Ich habe eine MS Access DB. Die Verbindung an sich besteht auch.
Ich möchte nun eine SQL Abfrage durchführen. Diese Abfrage steht in einer for-Schleife, weil ich keine Lust habe, 20x den SQL-Befehl umzuändern. Die Werte im int[] kostenstellen sind dann die Einträge, nach denen ich suchen will. Ich bekomme aber immer die unten aufgeführte Fehlermeldung mit "Column not found: 0". Der Spaltenname ist aber KstStNr, so wie er auch in dem SQL-Befehl steht... Weiß jemand ne Lösung??
Später will ich für jede "KstStNr", bestehend aus mehreren WHERE Bedingungen (noch ausgeklammert) die Summe der Werte berechnen und speichern.
Fehlermeldung:
Java:
1. Summe: net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.1 Column not found: 0
at net.ucanaccess.jdbc.UcanaccessResultSet.getInt(UcanaccessResultSet.java:447)
at DBConnection.holDbDaten(DBConnection.java:97)
at Main.main(Main.java:8)
Caused by: java.sql.SQLException: Column not found: 0
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.checkColumn(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.getColumnInType(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.getInt(Unknown Source)
at net.ucanaccess.jdbc.UcanaccessResultSet.getInt(UcanaccessResultSet.java:445)
... 2 more
Caused by: org.hsqldb.HsqlException: Column not found: 0
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
... 7 more
Code:
Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class DBConnection {
static Connection connection = null;
static Statement statement = null;
static ResultSet resultSet = null;
// 1. Schritt: Oracle JDBC Treiber laden
public static void holDbDaten() {
// Connection connection = null;
// Statement statement = null;
// ResultSet resultSet = null;
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
}
catch (ClassNotFoundException cnfex) {
System.out.println("Problem beim laden des Datenbanktreibers!");
cnfex.printStackTrace();
}
// 2. Schritt: Öffnen der Datenbank Verbindung
try {
String msAccDB = "D:"
+ "/Test.accdb";
String dbURL = "jdbc:ucanaccess://" + msAccDB;
// Step 2.A: Create and
// get connection using DriverManager class
connection = DriverManager.getConnection(dbURL);
// Step 2.B: Creating JDBC Statement
statement = connection.createStatement();
// Step 2.C: Executing SQL and
// retrieve data into ResultSet
int[] kostenstellen = {22854, 24350, 24351, 24352, 24550, 24820, 25330, 26389, 26390, 26391, 26392, 26393, 27139, 27450, 28411, 28470, 28490, 63450, 63500, 63600, 63700, 63800};
// int[] errechneteSumme = new int[21];
// for (int stelle : Summen) {
for (int i = 0; i < kostenstellen.length; i++) {
resultSet = statement.executeQuery("SELECT Betrag FROM Kostenjournal WHERE KstStNr = " + kostenstellen[i]);
// + " (SELECT SUM (Betrag) FROM Kostenjournal WHERE KstArtNr"
// + " = 621100)");
// + " = 621100 AND 624100 AND 624200 AND 624300 AND 624400)");
}
// processing returned data and printing into console
while(resultSet.next()) {
int z = 1;
System.out.print(z + ". Summe: ");
z++;
System.out.println(resultSet.getInt(0));
}
}
catch(SQLException sqlex){
sqlex.printStackTrace();
}
finally {
// Step 3: Closing database connection
try {
if(null != connection) {
// cleanup resources, once after processing
resultSet.close();
statement.close();
// and then finally close connection
connection.close();
}
}
catch (SQLException sqlex) {
sqlex.printStackTrace();
}
}
}
}