Zum Inhalt springen

Kleines Problem mit JDBC


BMAS

Empfohlene Beiträge

Ich habe da ein kleines Problem, ich verstehe nicht so ganz was da falsch ist:

Ich habe um eine Access Tabelle (Datenbank kann man das ja nicht nennen :D ) mit Testdaten erstellt, nun will ich diese mittels JDBC auslesen... (später wird das Programm dann auf eine Sybase Datenbank zugreifen)

Dafür habe ich eine Klasse geschrieben, welche mir die SQL Abfrage automatisch generiert und per JDBC-ODBC Bridge an Access schickt.

Das funktioniert soweit auch ganz gut, die Abfrage wird richtig generiert und ein Ergebnis zurückgeliefert, aber ich bekomme trotzdem eine Fehlermeldung, mit der ich jedoch nichts anfangen kann. Weiss da jemand weiter?

Abfrage: SELECT * FROM MList WHERE (Lieferantenname='MNO GmbH' )

Ergebnis: MNO GmbH 12348888 Gastronomie Essen, Getränke A Strasse PLZ Ort 123/987

Fehler: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Fehler in der Funktionsreihenfolge.

Oh, ja und hier die Klasse:

Die Update und Insert Geschichten funzen noch nicht (bzw. sind noch nicht fertig), erstmal ist nur der Select Befehl lauffähig.


package gui;

import java.sql.*;
import java.util.StringTokenizer;


public class Sql {

private String wert;
private String feld;

private String werte[];
private String felder[];


private ResultSet rSet;

public Sql() {

}
public ResultSet getData(String wert) {

String select = "SELECT * FROM MList WHERE (";

int i=1;

boolean x = false;

this.wert = wert;

String token;

StringTokenizer st = new StringTokenizer(wert, ";");


while(st.hasMoreTokens())
{

token = st.nextToken();

if (i == 1 && token.equals("-")==false) {
select = select + "Lieferantenname='" + token + "' ";
x = true;
}

if (i == 2 && token.equals("-")==false) {

if (x == false)
{
select = select + "Lieferantennr='" + token + "' ";
x = true;
}

else
select = select + "AND Lieferantennr='" + token + "' ";


}

if (i == 3 && token.equals("-")==false) {

if (x == false)
{
x = true;
select = select + "Branche='" + token + "' ";
}

else
select = select + "AND Branche='" + token + "' ";


}

if (i == 4 && token.equals("-")==false) {

if (x == false)
select = select + "Bewertung='" + token + "' ";

else
select = select + "AND Bewertung='" + token + "'";
}
i=i+1;


}



select = select + ")";

System.out.println(select);

select(select);
return rSet;

}


private void select(String sqlQuery) {

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (Exception e) {
System.out.println("Fehler bei ODBC-JDBC" + e);

return;
}

ResultSet rSet;
Statement stmt;
Connection conn;

try {
String url = "jdbc:odbc:MList";

conn = DriverManager.getConnection(url, "User", "User");
stmt = conn.createStatement();

rSet = stmt.executeQuery(sqlQuery);
} catch (Exception e) {
System.out.println(e);

return;
}

try {
while (rSet.next())
System.out.println(
rSet.getString(1)
+ "\t"
+ rSet.getString(2)
+ "\t"
+ rSet.getString(3)
+ "\t"
+ rSet.getString(4)
+ "\t"
+ rSet.getString(5)
+ "\t"
+ rSet.getString(6)
+ "\t"
+ rSet.getString(7)
+ "\t");

stmt.close();
conn.close();
} catch (Exception e) {
System.out.println(e);

return;
}
this.rSet = rSet;
}

public Sql(String sqlQuery) {

}

public void delete(String sqlQuery) {}

public void setData() {}

public void setData(String vorgang, String wert) {

String sqlQuery;

StringTokenizer st = new StringTokenizer(wert,";");

if (vorgang=="update")
{
sqlQuery = "UPDATE FROM MList WHERE (";
update(sqlQuery);
}

if (vorgang=="Update")
{
sqlQuery = "INSERT INTO MList VALUES ("+st.nextToken()+","+st.nextToken()+","+st.nextToken()+","+st.nextToken()+","+st.nextToken()+","+st.nextToken()+","+st.nextToken()+")";

}

if (vorgang=="delete")
{
String token=st.nextToken();
token=st.nextToken();
sqlQuery="DELETE * FROM MList WHERE ('Lieferantennr="+token+"')";
delete(sqlQuery);
}
}

private void update(String sqlQuery) {

}
}
[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...