Bonjour, j'ai ecrit un programme en java pour inserer des données dans MsAccess 2007, en utilisant le driver ucanaccess 3.0.7;
la selection à partir de ms access marche bien; tandis que l'insertion lance cette exception:
UCAExc:::3.0.7 Cannot write indexes of this type due to unsupported collating sort order SortOrder[1036(0)] for text index (Db=dbname.accdb;Table=etudiant;Index=0)
Le code que j'ai utilisé:
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 public static int inserer(int matricule, String nom,String prenom) throws Exception{ try{ String driver="net.ucanaccess.jdbc.UcanaccessDriver"; Class.forName(driver).newInstance(); java.sql.Connection con; con=DriverManager.getConnection("jdbc:ucanaccess://C:/Users/kami/Documents/dbname.accdb"," "," "); System.out.println("connection crée"); <code =sql>String query="INSERT INTO `etudiant` (`matricule`, `nom`, `prenom`) VALUES (?,?,?)";</code> PreparedStatement t=con.prepareStatement(query); t.setInt(1,matricule); t.setString(2,nom); t.setString(3,prenom); etat=t.executeUpdate(); } catch(Exception e){ System.out.println(e.getMessage()); } return etat; }
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 public static void main(String[] args) throws Exception { Scanner e=new Scanner(System.in); System.out.println("entrer un matricule"); int mat=e.nextInt(); System.out.println("entrer un nom"); String nom=e.next(); System.out.println("entrer un prenom"); String prenom=e.next(); int etat=inserer(mat,nom,prenom); if(etat==1) System.out.println("insertion effectuée"); else System.out.println("insertion echouée"); }
Partager