Προς το περιεχόμενο

Java DataBase Connection.Please Help


Red_Phantom

Προτεινόμενες αναρτήσεις

Δημοσ.

Exo egatastisi to Java SDK 1.4 kai prospatho na sindeso ena programma se java me mia basi se Access 2000.To setup kai i dimiourgia tis basis eginan sosta.Exo ena problima omos me to connection stin basi meso tis java.

 

import java.sql.*;

import java.util.*;

 

public class database

{

public static void main(String[] args)

{

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

System.out.println("Driver Success");

//Connection con=DriverManager.getConnection("tasos:tasos:myFirstAccess","","");

 

}

catch (ClassNotFoundException e) {

System.out.println("Unable to load Driver Class");

return;

}

 

try{

Connection con = DriverManager.getConnection("tasos:tasos:myFirstAccess");

}

catch(Exception e){

System.out.println("Connection error");

return ;

}

 

 

 

 

 

}

}

 

An afiso tin proti getConnection toto otan to kano bytecode mou petaei minima oti iparxei unhandled unreported exception kai oti tha prepei na kano catch to exception.Kanontas catch to exception opos parapano tote perno bytecode kanonika alla den ginetai pote i sindesi afou exo panta exception.Pleaze help giati den mou deinei oute i java oute kapoio book pou epsaksa to exception pou ginetai.Na simeioso episeis pos ton driver gia tin basi Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

ton fortonei kanonika.

Δημοσ.

νομιζω οτι εχεις καποιο λαθος στο getConnection

ξεχνας κατι στο προθεμα

 

πχ

>
DriverManager.getConnection("jdbc:odbc:dbname","Admin","");

"jdbc:odbc "

 

 

επισης οταν κανεις catch τα exception καλο ειναι να βλεπεις το stacktrace ιδιατερα οταν φιαχνεις την εφαρμογη!

οποτε βαλε

 

e.printstacktrace();

 

να δουμε τι σου βγαζει!

 

δεν χρειαζεται να εχεις 2 διαφορετικα catch αμα πιασεις ενα SQLException θα εισαι οκ! με το stacktrace Μπορεις να δεις ποιο σου παραπονιεται!αυτο για ευκολια διαβασματος του κωδικα σου

 

1

Δημοσ.

File ekana auta pou mou eipes kai o odigos gia tin database(se Access XP)

fortothike kanonika.Episeis pragmatopoiithike kai i sindesi me tin basi kanonika.Omos otan ypobalo erotisi stin basi to energopoieitai exception.

 

import java.sql.*;

import java.util.*;

 

public class database

{

public static void main(String[] args)

{

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connection con = DriverManager.getConnection("jdbc:odbc:myFirstAccess","tasos","azr9TFyi");

System.out.println("Connection Success");

Statement st=con.createStatement();

String sql="SELECT * FROM books";

ResultSet result=st.executeQuery(sql);

 

 

ResultSetMetaData rmeta=result.getMetaData();

int numColumns=rmeta.getColumnCount();

for(int i=0;i<=numColumns;i++)

{

if(i<numColumns)

System.out.println(rmeta.getColumnName(i)+' ');

else

System.out.println(rmeta.getColumnName(i));

}

con.close();

return ;

 

}

catch(Exception e){

System.out.println(e);

System.out.println("Connection error");

 

 

return ;

}

 

To programma tiponei:

Connection Success

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid descriptor index

 

Connection error

 

Diladi to exception dimiourgeitai an ypobalo tin erotisi.Ean den ypobalo erotisi to programma termatizei kanonika xoris na exo exception.

 

Ti mporei na ftaiei?

Δημοσ.

Connection Success

 

/***************To prinstacktrace bgazei****************/

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid descriptor index

 

at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6106)

at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6263)

at sun.jdbc.odbc.JdbcOdbc.SQLColAttributesString(JdbcOdbc.java:2095)

at sun.jdbc.odbc.JdbcOdbcResultSetMetaData.getColAttributeString(JdbcOdb

cResultSetMetaData.java:793)

at sun.jdbc.odbc.JdbcOdbcResultSetMetaData.getColumnName(JdbcOdbcResultS

etMetaData.java:355)

at database.main(database.java:23)

/***************************************************/

 

Connection error

 

why ???????? ???

Δημοσ.

>
for(int i=0;i<=numColumns;i++) 

 

Άλλαξε την παραπάνω γραμμή και κάνε την ως κάτωθι:

 

>
for(int i=1;i<=numColumns;i++) 

 

και πες μας αν βοήθησε. Η αρίθμηση των στηλών αρχίζει από το 1.

Δημοσ.

Thanks file Γηρυόνης!!!!!!!!!!!!Auto itan to problima!!! Oso kai na epsaxna den tha to ebriska!Oreos! ;)

 

Episeis thanks ston javanidhs gia to endiaferon kai tin orea patenta sto debugging!! ;)

 

Telos thanks mkst gia to endiaferon sou! ;)

Δημοσ.

Τίποτα φίλε μου, να' σαι καλά :) .

 

Δυστυχώς αυτή η βλάκώδης αρίθμηση μου έχει δημιουργήσει και εμένα πάμπολλα προβλήματα. Ή κάνε τε το όλα από μηδέν ή όλα από ένα... Τέλως πάντων...

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...