Hallo!
Mein Problem ist es, so glaube ich, dass mir ein Treiber fehlt (vielleicht JDBC ODBC Bridge??).
Die Ausgabe meines Programmes sieht folgendermaßen aus:
Ein Select geht komischerweise, aber bei einem insert fehlt irgendwas. Ich weiß aber nicht was, normal sollte das Programm schon funktionieren. Kann es sein, dass mir eine JDBC ODBC Bridge fehlt, wenn ja, wo kann man die herbekommen? Ich müsste das Programm, nämlich nochmal testen, weil ich morgen das für die Schule brauche. Hier noch mal der Code, falls der für mein Problem wichtig ist:
Danke schon mal!!
mfg,
Christian.
Mein Problem ist es, so glaube ich, dass mir ein Treiber fehlt (vielleicht JDBC ODBC Bridge??).
Die Ausgabe meines Programmes sieht folgendermaßen aus:
- C:\Dokumente und Einstellungen\Christian\Test\src>java -cp . Labor_12
Treiber erfolgreich geladen
Verbindung erfolgreich aufgebaut
Statement erfolgreich erzeugt
sql> select * from test1
name : alter : beruf :
sql> insert into test1 values("Christian",18,"Schüler");
Fehler:
[Microsoft][ODBC Microsoft Access Driver] Fehlt
sql>
Ein Select geht komischerweise, aber bei einem insert fehlt irgendwas. Ich weiß aber nicht was, normal sollte das Programm schon funktionieren. Kann es sein, dass mir eine JDBC ODBC Bridge fehlt, wenn ja, wo kann man die herbekommen? Ich müsste das Programm, nämlich nochmal testen, weil ich morgen das für die Schule brauche. Hier noch mal der Code, falls der für mein Problem wichtig ist:
Code:
import java.sql.*;
import java.io.*;
import java.util.*;
public class Labor_12 {
public static void main(String []args) {
Connection con = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("Treiber erfolgreich geladen");
}
catch(ClassNotFoundException e) {
System.err.println("Fehler: " + e);
System.exit(0);
}
try {
con = DriverManager.getConnection("jdbc:odbc:Test","","");
con.setAutoCommit(false);
System.out.println("Verbindung erfolgreich aufgebaut");
}
catch(SQLException e) {
System.err.println("Fehler: " + e.getMessage());
System.exit(0);
}
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
Statement s = null;
try {
s = con.createStatement();
System.out.println("Statement erfolgreich erzeugt");
}
catch(SQLException e) {
System.err.println("Fehler: " + e.getMessage());
System.exit(1);
}
try {
boolean alt=false;
int i=0;
String[] st = new String[0];
String line = null;
System.out.print("sql> ");
System.out.flush();
line = in.readLine();
outer: if(line.startsWith("-s")) {
if((st = readTXT(line))==null)
break outer;
for(i=0;i<st.length;i++)
x(st[i],s);
if(i==(st.length-1))
con.commit();
else
con.rollback();
alt=true;
}
while(!line.equals("quit")) {
if(alt==false) {
x(line,s);
con.commit();
}
System.out.print("sql> ");
System.out.flush();
alt=false;
line = in.readLine();
outer: if(line.startsWith("-s")) {
if((st = readTXT(line))==null)
break outer;
for(i=0;i<st.length;i++)
x(st[i],s);
if(i==(st.length-1))
con.commit();
else
con.rollback();
alt=true;
}
}
}
catch(SQLException sqle) {}
catch(IOException ioe) {}
try {
con.close();
System.out.println("Verbindung erfolgreich aufgeloest");
}
catch(SQLException e) {
System.err.println("Fehler: " + e);
}
}
public static void x(String line, Statement s) {
try {
if(s.execute(line)) { // Abfrage durchgeführt
ResultSet rs = s.getResultSet();
printRecords(rs);
}
else {
int nr = s.getUpdateCount();
System.out.println(nr + " Datensätze erfolgreich aktualisiert");
}
}
catch(SQLException e) {
System.out.println("Fehler:\n" + e.getMessage() );
}
}
public static void printRecords(ResultSet rs) throws SQLException {
ResultSetMetaData rsmd = rs.getMetaData();
StringBuffer header = new StringBuffer();
for (int i = 1; i <= rsmd.getColumnCount(); i++)
header.append(rsmd.getColumnName(i) + " : ");
System.out.println(header);
StringBuffer line;
while(rs.next()) {
line = new StringBuffer();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
switch(rsmd.getColumnType(i)) {
case Types.INTEGER: line.append(rs.getInt(i) + " : ");
break;
case Types.DOUBLE: line.append(rs.getDouble(i) + " : ");
break;
case Types.VARCHAR: line.append(rs.getString(i) + " : ");
break;
default: line.append(rs.getString(i)+ " : ");
break;
}
}
System.out.println(line);
}
}
private static String[] readTXT(String line) {
StringBuffer sb = new StringBuffer();
try {
BufferedReader br = new BufferedReader(new FileReader(line.substring(3)));
String help;
while((help=(br.readLine()))!=null) {
if(!help.equals(null))
sb.append(help);
}
}
catch(FileNotFoundException fnfe) {
System.out.println("Datei nicht vorhanden.");
return null;
}
catch(IOException e) {}
StringTokenizer st = new StringTokenizer(new String(sb),";");
String[] s = new String[st.countTokens()];
for(int i=0;i<s.length;i++)
s[i] = (String)st.nextElement()+";";
return s;
}
}
Danke schon mal!!
mfg,
Christian.