A
Assaultv2.0
Gast
HI
Ich habe mir folgendes zusammen gebastelt, es geht darum, dass es sich zu verschiedenen Datenbanken verbinden soll und dort überall ein und die selbe SQL-Abfrage starten soll...
meinProblem besteht jetzt in dem teil,
dass er dort die Fehlermeldungen ausgiebt:
und eine sache noch, in wie weit beeinflust es mein Prog, das er mir bei
die Meldung ausgiebt:
Ich habe mir folgendes zusammen gebastelt, es geht darum, dass es sich zu verschiedenen Datenbanken verbinden soll und dort überall ein und die selbe SQL-Abfrage starten soll...
Code:
import java.io.*;
import java.sql.*;
import sun.jdbc.odbc.JdbcOdbcDriver;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Read {
public static void main (String [] Args){
//-----------------------------------------------------------------------------------------------------------------
// Variablen
//-----------------------------------------------------------------------------------------------------------------
// Connection
String Host ="";
String Sid ="";
String url;
String Driver;
String sql;
Connection con;
Statement stmt;
ResultSet result;
String hostname = "";
String sid = "";
String port = "1521";
String user = "admin";
String password = "admin";
// Zähler Array und Schleifen
int i= 0;
int anrX = 0;
int anrfix = 0;
// SQL - Abfrage
int hhj_id, ANW_ANW_ID, MAN_MAN_NR, ANW_NR, jahr2;
String anw_nr = IO.promptAndReadString("ANW_NR: " );
String jahr = IO.promptAndReadString("Jahr: ");
String sqlstring =
"select distinct ... /";
//-----------------------------------------------------------------------------------------------------------------
//Datei auslesen
//-----------------------------------------------------------------------------------------------------------------
DBS[] DBA = new DBS[3];
try {
RandomAccessFile f;
f = new RandomAccessFile( "C:\\Dokumente und Einstellungen\\tja\\Desktop\\Input-TNSNames.tns", "r" );
for ( String line; (line=f.readLine()) != null; )
{
i++;
if (i==1){Host = line;}
else if (i==2) { Sid = line;}
;
if(i >=3){
i = 0;
DBA[anrX] = new DBS(Sid, Host);
anrX = anrX + 1;}
}
f.close();
anrfix = anrX;
anrX =0;
}
catch ( FileNotFoundException e )
{
System.err.println( "Datei gibt’s nicht!" );
}
catch ( IOException e )
{
System.err.println( "Schreib-/Leseprobleme!" );
}
for(anrX = 0; anrX >= 0 ; anrX++){
hostname = DBA[anrX].hostname;
sid = DBA[anrX].sid;
System.out.println("Datenbankzugriff mit JDBC");
System.out.println("=========================\n\n");
// Adresse der zu verbindenden Datenbank
url = "jdbc:oracle:thin:@"+hostname+":"+port+":"+sid;
// Treiber laden und Verbindung herstellen
try {
// JDBC over ODBC Treiber laden
Class.forName("oracle.jdbc.driver.OracleDriver");
// Verbindung mit der Datenbank aufnehmen
con = DriverManager.getConnection(url,user,password);
System.out.println("Verbinden ...");
}
catch (SQLException e) {
System.out.println("Fehler beim Verbindungsaufbau!");
System.exit(0);
}
catch (ClassNotFoundException e) {
System.out.println("JDBC over ODBC Treiber nicht gefunden!");
System.exit(0);
}
System.out.println("Verbindungsaufbau erfolgreich\n");
//-----------------------------------------------------------------------------------------------------------------
// SLQ-ABfrage
//-----------------------------------------------------------------------------------------------------------------
// Ausgabe der Datensaetze
try {
// SQL-Select-Befehl
sql = sqlstring;
// Statement erstellen um SQL-Befehle auszufuehren
stmt = con.createStatement();
// SQL-Befehl ausfuehren
result = stmt.executeQuery(sql);
System.out.println(hostname + "@" + sid);
System.out.println("---------------------------------------");
// Datensaetze holen und auf dem Bildschirm ausgeben
while (result.next())
{
System.out.println("Jahr\t\thhj_id\t\tANW_ANW_ID\t\tMAN_MAN_NR\t\tANW_NR" );
jahr2 = result.getInt("Jahr");
hhj_id = result.getInt("hhj_id");
ANW_ANW_ID = result.getInt("ANW_ANW_ID");
MAN_MAN_NR = result.getInt("MAN_MAN_NR");
ANW_NR = result.getInt("ANW_NR");
System.out.println(jahr2+"\t"+hhj_id+"\t"+ANW_ANW_ID+"\t"+MAN_MAN_NR+"\t"+ANW_NR);
}
// Verbindungen schliessen
result.close();
stmt.close();
con.close();
}
catch (SQLException e) {
System.out.println("Fehler bei der Ausgabe!");
e.printStackTrace();
}
}
}
}
meinProblem besteht jetzt in dem teil,
Code:
// Verbindung mit der Datenbank aufnehmen
con = DriverManager.getConnection(url,user,password);
System.out.println("Verbinden ...");
dass er dort die Fehlermeldungen ausgiebt:
und wenn ich trotzdem versuche zu starten....The local variable con may not have been initialized
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The local variable con may not have been initialized
The local variable con may not have been initialized
at Read.main(Read.java:154)
und eine sache noch, in wie weit beeinflust es mein Prog, das er mir bei
Code:
hostname = DBA[anrX].hostname;
sid = DBA[anrX].sid;
die Meldung ausgiebt:
(sowohl bei*.sid als auch *.hostname)The static field DBS.hostname should be accessed in a static way