Es ist zum K.
brauche zum Testen von Verbindungen einen universellen DataReader,
zunächst einmal nur mit JDBCODBC (unter Win werden aus ODBC.ini
die Einträge gelesen und zur Auswahl angeboten.
Dann wird die Verbindung hergestellt : globale Variable myconn wird an Funktion connex
übergeben.
folgender Code funktioniert nur mit mySQL (???) :
<pre>
public static void make_connex(String myconn, String kennwt, String passwt) {
try {
//jEditorPane1.setText("Versuche, Verbindung zu öffnen : " + myconn);
int wahl = JOptionPane.showConfirmDialog(null,
"Connex","Weiter ?",JOptionPane.YES_NO_OPTION);
if (wahl == JOptionPane.NO_OPTION)
return;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
status = 1;
con = DriverManager.getConnection("jdbcdbc:"+myconn,kennwt,passwt);
jEditorPane1.setText(status + " Conn : "+ myconn.trim());
status = 2;
DatabaseMetaData dbmd = con.getMetaData();
status = 3;
ResultSet meta_rs = dbmd.getTables("","","",null);
status = 4;
int i = 0;
String buff = "";
while (meta_rs.next()) {
buff = meta_rs.getString(3);
TabModel.add(0,buff);
}
jListTables.setModel(TabModel);
jListTables.setSelectionMode(ListSelectionModel.SI NGLE_SELECTION);
} catch (Exception e) {
jEditorPane1.setText(status + " Connex : Fehler bei Lesen der Metadaten (Tables) von : " + myconn);
//e.printStackTrace();
}
//- Ende Funktion make_connex
}
public static void get_data(String sqlText) {
String colStream = "";
int i;
String dataStream = "";
try {
Statement stmt = con.createStatement();
status = 1;
stmt.execute(sqlText);
status = 2;
ResultSetMetaData rsmd = stmt.getResultSet().getMetaData();
status = 3;
int cnum = rsmd.getColumnCount();
for (i = 1;i <= cnum;i++) {
colStream += rsmd.getColumnName(i);
colStream += " ";
}
status = 4;
TextModel.add(TextModel.size(),colStream);
status = 5;
TextModel.add(TextModel.size(),"--------------------------");
stmt.close();
} catch (Exception e) {
jEditorPane1.setText(status + " get_data : Fehler bei Lesen der Meta-Daten (Columns) für : " + sqlText);
e.printStackTrace();
}
try {
//- vor dem Datenlesen mußte der Cursor geschlossen werden
Statement stmt = con.createStatement();
stmt.execute(sqlText);
ResultSet rdata = stmt.getResultSet();
status = 6;
while( rdata.next() ) {
dataStream = rdata.getInt(1) + " " + rdata.getString(2);
TextModel.add(TextModel.size(),dataStream);
}
status = 7;
jListData.setModel(TextModel);
status = 8;
jListData.setSelectionMode(ListSelectionModel.SING LE_SELECTION);
status = 9;
} catch (Exception e) {
jEditorPane1.setText(status + " Fehler bei Lesen der Daten für : " + sqlText);
e.printStackTrace();
}
//- Ende Funktion get_data
}
</pre>
Komisch, obwohl ich mit einem anderen Programm sämtliche Verbindungen
soweit nutzen konnte, das Funktionsangebot auszugeben, scheitert alles
(außer bei mySQL) schon an :
ResultSet meta_rs = dbmd.getTables("","","",null);
HIIILLLFFEEE !!!!
MfG
Wolf
brauche zum Testen von Verbindungen einen universellen DataReader,
zunächst einmal nur mit JDBCODBC (unter Win werden aus ODBC.ini
die Einträge gelesen und zur Auswahl angeboten.
Dann wird die Verbindung hergestellt : globale Variable myconn wird an Funktion connex
übergeben.
folgender Code funktioniert nur mit mySQL (???) :
<pre>
public static void make_connex(String myconn, String kennwt, String passwt) {
try {
//jEditorPane1.setText("Versuche, Verbindung zu öffnen : " + myconn);
int wahl = JOptionPane.showConfirmDialog(null,
"Connex","Weiter ?",JOptionPane.YES_NO_OPTION);
if (wahl == JOptionPane.NO_OPTION)
return;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
status = 1;
con = DriverManager.getConnection("jdbcdbc:"+myconn,kennwt,passwt);
jEditorPane1.setText(status + " Conn : "+ myconn.trim());
status = 2;
DatabaseMetaData dbmd = con.getMetaData();
status = 3;
ResultSet meta_rs = dbmd.getTables("","","",null);
status = 4;
int i = 0;
String buff = "";
while (meta_rs.next()) {
buff = meta_rs.getString(3);
TabModel.add(0,buff);
}
jListTables.setModel(TabModel);
jListTables.setSelectionMode(ListSelectionModel.SI NGLE_SELECTION);
} catch (Exception e) {
jEditorPane1.setText(status + " Connex : Fehler bei Lesen der Metadaten (Tables) von : " + myconn);
//e.printStackTrace();
}
//- Ende Funktion make_connex
}
public static void get_data(String sqlText) {
String colStream = "";
int i;
String dataStream = "";
try {
Statement stmt = con.createStatement();
status = 1;
stmt.execute(sqlText);
status = 2;
ResultSetMetaData rsmd = stmt.getResultSet().getMetaData();
status = 3;
int cnum = rsmd.getColumnCount();
for (i = 1;i <= cnum;i++) {
colStream += rsmd.getColumnName(i);
colStream += " ";
}
status = 4;
TextModel.add(TextModel.size(),colStream);
status = 5;
TextModel.add(TextModel.size(),"--------------------------");
stmt.close();
} catch (Exception e) {
jEditorPane1.setText(status + " get_data : Fehler bei Lesen der Meta-Daten (Columns) für : " + sqlText);
e.printStackTrace();
}
try {
//- vor dem Datenlesen mußte der Cursor geschlossen werden
Statement stmt = con.createStatement();
stmt.execute(sqlText);
ResultSet rdata = stmt.getResultSet();
status = 6;
while( rdata.next() ) {
dataStream = rdata.getInt(1) + " " + rdata.getString(2);
TextModel.add(TextModel.size(),dataStream);
}
status = 7;
jListData.setModel(TextModel);
status = 8;
jListData.setSelectionMode(ListSelectionModel.SING LE_SELECTION);
status = 9;
} catch (Exception e) {
jEditorPane1.setText(status + " Fehler bei Lesen der Daten für : " + sqlText);
e.printStackTrace();
}
//- Ende Funktion get_data
}
</pre>
Komisch, obwohl ich mit einem anderen Programm sämtliche Verbindungen
soweit nutzen konnte, das Funktionsangebot auszugeben, scheitert alles
(außer bei mySQL) schon an :
ResultSet meta_rs = dbmd.getTables("","","",null);
HIIILLLFFEEE !!!!
MfG
Wolf
Comment