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");
 
		}