a propos du switch "default"

a propos du switch "default" - Java - Programmation

Marsh Posté le 16-03-2004 à 10:16:45    

resalut tout le monde ;
en fait je suis entrain de faire  un programme ou je fais la connesxion a deux base de donnée differente une foxpro et une mysql ,
bon le probleme que j'ai c que dans le swittch que j'ai utilisé j'ai mis dans le default ce qui suit :  
default : {Connection FoxPro ; Connection mysql}
es ce possible de faire ce que j'essaye de faire car il me donne une erreur  
  FoxPro is already defined in ConDB(int)
 
en sachant que conDB(int) est la methode qui contien le switch
 :pt1cable:  :jap:  merci

Reply

Marsh Posté le 16-03-2004 à 10:16:45   

Reply

Marsh Posté le 16-03-2004 à 10:42:24    

ben c'est clair, tu as déjà une variable nommée FoxPro dans ta méthode.
 
file-nous le code complet de la méthode stp.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 16-03-2004 à 10:45:37    

nraynaud a écrit :

ben c'est clair, tu as déjà une variable nommée FoxPro dans ta méthode.
 
file-nous le code complet de la méthode stp.


Code :
  1. public void ConDB (int DBTYPE)
  2.                 {
  3.                 Properties properties=new Properties();
  4.                 properties.setProperty ("charSet","Cp858" ); //Permet de reconnaitre les accents et le caractère euro
  5.                  switch (DBTYPE)
  6.                         {
  7.                         case FOXPRO : Connection FoxPro ;
  8.                         Class driver_DBF = Class.forName(DBFoxPro);
  9.                         FoxPro  = DriverManager.getConnection("jdbc:DBF:////home/bentaih/intranet/cron" , properties);
  10.                         break;
  11.                         case MYSQL : Connection MySql ;
  12.                         Class driver_mysql = Class.forName(DBMySql);
  13.                         MySql = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/" +"testb", "root","" );
  14.                         break;
  15.                         default : { Connection FoxPro ; Connection MySql ; }
  16.                         break;
  17.                         }
  18.                 }


 
voila le code


Message édité par bentaih le 16-03-2004 à 10:46:34
Reply

Marsh Posté le 16-03-2004 à 11:13:06    

nraynaud a écrit :

ben c'est clair, tu as déjà une variable nommée FoxPro dans ta méthode.
 
file-nous le code complet de la méthode stp.


 
svvvvvvvvvvvvvvpppppppppppp
repondez moi , je suis triste  
 :cry:  

Reply

Marsh Posté le 16-03-2004 à 11:13:56    

de toute facon tu ne pourra pas utiliser ta connexion en dehor de ton switch
 
fait plutot comme ca :
 

Code :
  1. Connection connection = null;
  2. switch (DBTYPE) {
  3. case FOXPRO :
  4.   Class.forName(DBFoxPro);
  5.   connection = DriverManager.getConnection("jdbc:DBF:////home/bentaih/intranet/cron" , properties);  
  6.   break;
  7. case MYSQL :
  8.   Class.forName(DBMySql);
  9.   connection = DriverManager.getConnection(jdbc:mysql://127.0.0.1:3306/" +"testb", "root","" ); 
  10.   break;
  11. }


Message édité par LAs3R le 16-03-2004 à 11:14:54
Reply

Marsh Posté le 16-03-2004 à 11:34:37    

LAs3R a écrit :

de toute facon tu ne pourra pas utiliser ta connexion en dehor de ton switch
 
fait plutot comme ca :
 

Code :
  1. Connection connection = null;
  2. switch (DBTYPE) {
  3. case FOXPRO :
  4.   Class.forName(DBFoxPro);
  5.   connection = DriverManager.getConnection("jdbc:DBF:////home/bentaih/intranet/cron" , properties);  
  6.   break;
  7. case MYSQL :
  8.   Class.forName(DBMySql);
  9.   connection = DriverManager.getConnection(jdbc:mysql://127.0.0.1:3306/" +"testb", "root","" ); 
  10.   break;
  11. }




oui je vois et mon default j'y met quoi?

Reply

Marsh Posté le 16-03-2004 à 12:06:18    

ben apparemment t'en as pas besoin
 
tu devrais plutot lever une exception genre :

Code :
  1. Connection connection = null;
  2. switch (DBTYPE) {
  3. case FOXPRO : 
  4. Class.forName(DBFoxPro);
  5. connection = DriverManager.getConnection("jdbc:DBF:////home/bentaih/intranet/cron" , properties);   
  6. break;
  7. case MYSQL : 
  8. Class.forName(DBMySql);
  9. connection = DriverManager.getConnection(jdbc:mysql://127.0.0.1:3306/" +"testb", "root","" ); 
  10. break;
  11. }
  12. if (connection == null) {
  13. throw new IllegalArgumentException("code bdd inconnue :" + DBTYPE);
  14. }


Message édité par LAs3R le 16-03-2004 à 12:10:31
Reply

Marsh Posté le 16-03-2004 à 12:09:04    

Tu mets  
default:break;
De toute façon, telle que c'était écrit, tes déclarations dans default ne t'auraient effectivement servi à rien.

Reply

Marsh Posté le 16-03-2004 à 12:19:57    

kotw a écrit :

Tu mets  
default:break;

euh pour mettre ça tu met pas du tout de default hein [:jofission]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 16-03-2004 à 12:31:05    

the real moins moins a écrit :

euh pour mettre ça tu met pas du tout de default hein [:jofission]


 
Il veut savoir quoi mettre dans le default, je lui dis quoi mettre !

Reply

Marsh Posté le 16-03-2004 à 12:31:05   

Reply

Marsh Posté le 16-03-2004 à 12:33:29    

LAs3R a écrit :

ben apparemment t'en as pas besoin
 
tu devrais plutot lever une exception genre :

Code :
  1. Connection connection = null;
  2. switch (DBTYPE) {
  3. case FOXPRO : 
  4. Class.forName(DBFoxPro);
  5. connection = DriverManager.getConnection("jdbc:DBF:////home/bentaih/intranet/cron" , properties);   
  6. break;
  7. case MYSQL : 
  8. Class.forName(DBMySql);
  9. connection = DriverManager.getConnection(jdbc:mysql://127.0.0.1:3306/" +"testb", "root","" ); 
  10. break;
  11. }
  12. if (connection == null) {
  13. throw new IllegalArgumentException("code bdd inconnue :" + DBTYPE);
  14. }




 
 
 
une petite remarque les variables FOXPRO et MYSQL faudra peut etre les declarer qq part  
ouuuuuuu??

Reply

Marsh Posté le 16-03-2004 à 12:34:19    

the real moins moins a écrit :

euh pour mettre ça tu met pas du tout de default hein [:jofission]


 :whistle:  
hohoho pas de baguare

Reply

Marsh Posté le 16-03-2004 à 12:35:04    

kotw a écrit :

Tu mets  
default:break;
De toute façon, telle que c'était écrit, tes déclarations dans default ne t'auraient effectivement servi à rien.


 
ok je vais esayer ca  

Reply

Marsh Posté le 16-03-2004 à 12:37:38    

Mais pourquoi tu veux absolument déclarer une variable de nom FoxPro ou Mysql ? L'important, c'est d'avoir la connection en fonction de DBTYPE, et le code donné me parait très correct
 
Edit : je te conseille de toujours mettre un  
default:break; même quand tu n'as rien dedans, ça mange pas de pain, et dans ta période d'apprentissage, ça te fera pas de mal :-)


Message édité par kotw le 16-03-2004 à 12:43:03
Reply

Marsh Posté le 16-03-2004 à 12:47:43    

kotw a écrit :

Mais pourquoi tu veux absolument déclarer une variable de nom FoxPro ou Mysql ? L'important, c'est d'avoir la connection en fonction de DBTYPE, et le code donné me parait très correct
 
Edit : je te conseille de toujours mettre un  
default:break; même quand tu n'as rien dedans, ça mange pas de pain, et dans ta période d'apprentissage, ça te fera pas de mal :-)


d'accord  
mais moi je pose la questio car j'ai integré le code dans mon programme et j'ai cette erreur  
 
 symbol  : variable FOXPRO  
 location: class WorkDB
                        case FOXPRO : Connection FoxPro ;
 
 
 
ou alors qq chose d'autre m'echape

Reply

Marsh Posté le 16-03-2004 à 12:56:48    

Lol attends, le code qui me parait correct est celui posté par LAs3R, à savoir :
 
Connection connection = null;  
  switch (DBTYPE) {  
     case FOXPRO :  
      Class.forName(DBFoxPro);  
      connection = DriverManager.getConnection("jdbc:DBF:////home/bentaih/intranet/cron" , properties);  
      break;  
     case MYSQL :  
      Class.forName(DBMySql);  
      connection = DriverManager.getConnection(jdbc:mysql://127.0.0.1:3306/" +"testb", "root","" );    
      break;  
  }

Reply

Marsh Posté le 16-03-2004 à 13:00:14    

kotw a écrit :

Lol attends, le code qui me parait correct est celui posté par LAs3R, à savoir :
 
Connection connection = null;  
  switch (DBTYPE) {  
     case FOXPRO :  
      Class.forName(DBFoxPro);  
      connection = DriverManager.getConnection("jdbc:DBF:////home/bentaih/intranet/cron" , properties);  
      break;  
     case MYSQL :  
      Class.forName(DBMySql);  
      connection = DriverManager.getConnection(jdbc:mysql://127.0.0.1:3306/" +"testb", "root","" );    
      break;  
  }
 


 
Edit :
en règle générale, de toute façon, je te conseille de prendre TOUJOURS l'habitude d'initialiser tes variables quand tu les déclares.

Reply

Marsh Posté le 16-03-2004 à 14:09:15    

kotw a écrit :


 
Edit :
en règle générale, de toute façon, je te conseille de prendre TOUJOURS l'habitude d'initialiser tes variables quand tu les déclares.


 
d'accord je vois  
meme si j'ai encore une rafale d'erreur mais je vais essayer de corriger tt ca  

Reply

Marsh Posté le 16-03-2004 à 14:29:06    

bentaih a écrit :


 
 
 
une petite remarque les variables FOXPRO et MYSQL faudra peut etre les declarer qq part  
ouuuuuuu??
 


 
ben j'ai fait que reprendre ton code, je pensais que tu les avais declaré qqpart  :sweat:

Reply

Marsh Posté le 16-03-2004 à 14:48:38    

LAs3R a écrit :


 
ben j'ai fait que reprendre ton code, je pensais que tu les avais declaré qqpart  :sweat:  


 
ook ok ok ok
excuse j'ai oublié une ligne au commentaire

Reply

Marsh Posté le 16-03-2004 à 19:08:17    

personne l'a encore dit alors je me lache :  
 
[:benou] http://java.sun.com/docs/codeconv/index.html [:benou]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 17-03-2004 à 07:30:33    

benou a écrit :

personne l'a encore dit alors je me lache :  
 
[:benou] http://java.sun.com/docs/codeconv/index.html [:benou]


 
hehe j'ai pas osé :)

Reply

Marsh Posté le 17-03-2004 à 09:06:32    

benou a écrit :

personne l'a encore dit alors je me lache :  
 
[:benou] http://java.sun.com/docs/codeconv/index.html [:benou]


 
euuh.....   merci   :o  :sweat:

Reply

Marsh Posté le 18-03-2004 à 09:38:51    

salut tt le monde en fait j'ai un autre petit probleme je suis entrain d'essayer la fonction d'indexation sur le resultat de ma requete sql.
le seul prob que j'ai c quue cette fonction s'ecrit sous  forme de   string.indexof("mot rechercher" )
et le resulat de la requete est sous frome de ResultSet;
es ce que quelqu'un a une idéee ?????
merci :)


Message édité par bentaih le 18-03-2004 à 10:41:54
Reply

Marsh Posté le 18-03-2004 à 12:45:24    

Normalemnet, tu as ça :
 
String strResult = result.getString(indexCol);
 
Après, il faut que tu adaptes tes méthodes en fonction de ce que tu veux faire

Reply

Marsh Posté le 18-03-2004 à 15:50:57    

kotw a écrit :

Normalemnet, tu as ça :
 
String strResult = result.getString(indexCol);
 
Après, il faut que tu adaptes tes méthodes en fonction de ce que tu veux faire


 
oui je sais j'ai deja essayé ca  
mais ca marche pas il me donne l'erreur suivante
 

Code :
  1. Illegal operation on empty result set
  2. java.sql.SQLException: Illegal operation on empty result set
  3.         at com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java:3623)
  4.         at com.mysql.jdbc.ResultSet.getString(ResultSet.java:1767)
  5.         at work.main(work.java:167)


Message édité par bentaih le 18-03-2004 à 15:51:27
Reply

Marsh Posté le 18-03-2004 à 15:55:12    

kotw a écrit :

Normalemnet, tu as ça :
 
String strResult = result.getString(indexCol);
 
Après, il faut que tu adaptes tes méthodes en fonction de ce que tu veux faire


 
je te donne mon code pour y jeter un coup d'oeil
 

Code :
  1. public static void main(String argv[])
  2.   {
  3.    String requete;
  4.    requete = new String("SELECT * FROM D0011100 WHERE COMMENTS LIKE '%PE%'" );
  5.    WorkDB MaBase=new WorkDB() ;
  6.    MaBase.ConDB();
  7.    MaBase.Log("connection reussie!" );
  8. try
  9.         {
  10.          ResultSet reqresult;
  11.          reqresult = MaBase.executeSQL(requete,1);
  12.          String conv;
  13.          conv = reqresult.getString(2);
  14.          MaBase.DecodeString(conv);
  15.                         }
  16.          catch ( Exception e )
  17.               {
  18.                System.out.println(e.getMessage());
  19.                e.printStackTrace();
  20.               }


 
si t'as des remarques n'hesite pas merci beaucoup :jap:  :)


Message édité par bentaih le 18-03-2004 à 15:57:10
Reply

Marsh Posté le 18-03-2004 à 16:19:07    

Code :
  1. ResultSet reqresult = maBase.executeSQL(requete,1);
  2. if (reqresult.next()) {
  3. String conv = reqresult.getString(2);
  4. maBase.decodeString(conv);
  5. }


Message édité par LAs3R le 18-03-2004 à 16:20:58
Reply

Marsh Posté le 18-03-2004 à 16:53:41    

Je dirais d'essayer ça :
 
      try
      {
       WorkDB MaBase=new WorkDB() ;  
       MaBase.ConDB();  
       MaBase.Log("connection reussie!" );  
     
       ResultSet reqresult;  
       reqresult = MaBase.executeSQL(requete,1);  
     
        while (reqresult.next())
        {
          String conv = reqresult.getString(2);  
          MaBase.DecodeString(conv);
        }
      }  
        catch ( Exception e )  
        {  
           System.out.println(e.getMessage());  
           e.printStackTrace();  
         }  

Reply

Marsh Posté le 18-03-2004 à 17:13:57    

kotw a écrit :

Je dirais d'essayer ça :
 
      try
      {
       WorkDB MaBase=new WorkDB() ;  
       MaBase.ConDB();  
       MaBase.Log("connection reussie!" );  
     
       ResultSet reqresult;  
       reqresult = MaBase.executeSQL(requete,1);  
     
        while (reqresult.next())
        {
          String conv = reqresult.getString(2);  
          MaBase.DecodeString(conv);
        }
      }  
        catch ( Exception e )  
        {  
           System.out.println(e.getMessage());  
           e.printStackTrace();  
         }  
 


c tout a fait ca  
ca marche  
merci beaucoup :jap:

Reply

Marsh Posté le 18-03-2004 à 18:08:47    

Lol faudra que je pense à me faire payer ! ;-)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed