Bonjour
J'ai maintenant une couche driver qui marche, je travaille sur la couche de plus haut niveau et j'ai une question à ce sujet:
Dans un premier temps je vous net le code:
puis le message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 pListText = new ArrayList<Structure.ElementWork>(); String cmd = "SELECT siIdDocument, vcDocument FROM T_WORK_INFORMATION WHERE siIdStateDocument = 3"; iNbResultFound = 0; iNbResultFound = InterbaseManager.ExecuteSelectRequest( cmd); try { while( InterbaseManager.myReader.next()); { WorkElement.Id = InterbaseManager.myReader.getInt( 0); WorkElement.wsText = InterbaseManager.myReader.getString( 1); pListText.add(WorkElement); } } catch(Exception ex) { ex.printStackTrace(); }
Je vous demande comment adresser les champs dans la boucle while du code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 java.sql.SQLException: [Microsoft][Gestionnaire de pilotes ODBC] Index de descripteur non valide at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.SQLGetDataInteger(Unknown Source) at sun.jdbc.odbc.JdbcOdbcResultSet.getDataInteger(Unknown Source) at sun.jdbc.odbc.JdbcOdbcResultSet.getInt(Unknown Source) at com.all4tec.matelo.linguistique.wizards.MissionDatabaseManager.ReadWork(MissionDatabaseManager.java:81) at com.all4tec.matelo.linguistique.wizards.LinguistiqueImportWizard.RecupereNomDesFichier(LinguistiqueImportWizard.java:61) at com.all4tec.matelo.linguistique.wizards.LinguistiqueImportWizard$1.run(LinguistiqueImportWizard.java:87) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
J'ai essayé dans un premier temps de partir à 1 puis j'ai essayé de partir à 0
Quand on compte à partir de 1 on récupère:
à Noter que dans la base siIdDocument est le premier enregistrement et vcDocument est le deuxième
Code : Sélectionner tout - Visualiser dans une fenêtre à part java.sql.SQLException: [Microsoft][Gestionnaire de pilotes ODBC] État de curseur non valide
J'ai modifié le programme pour me rendre indépendant de la question "est ce que on doit dire sur l'index":
mais cette méthode n'a rien changé le premier index est positionné a 1 et il part en carafe( en exception)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 pListText = new ArrayList<Structure.ElementWork>(); String cmd = "SELECT siIdDocument, vcDocument FROM T_WORK_INFORMATION WHERE siIdStateDocument = 3"; iNbResultFound = 0; iNbResultFound = InterbaseManager.ExecuteSelectRequest( cmd); try { while( InterbaseManager.myReader.next()&& iNbResultFound > 0); { String nom; nom = "siIdDocument"; int index = InterbaseManager.myReader.findColumn(nom); WorkElement = new Structure.ElementWork(); WorkElement.Id = InterbaseManager.myReader.getInt( index); index++; WorkElement.wsText = InterbaseManager.myReader.getString( index); pListText.add( WorkElement); iNbResultFound--; } } catch( Exception ex) { ex.printStackTrace(); }
Je me demande si on ne doit pas coder int index dans un type plus spécialisé?
Celui qui m'aidera sera![]()
Partager