Bonjour
Je développe une petite application qui nécessite d'accéder en lecture et écriture à Microsoft Access. J'utilise ActivePerl 5.10.
J'utilise la lib DBI pour faire mes requètes SQL.
Lors de l'insertion d'un élément dans une table, si cet élément possède un caractère de type "accent aigu" etc, je retrouve en base un osé à la place d'un osé (pour citer un exemple).

voici typiquement ce que je fais:

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
#!C:\perl\bin\perl.exe -w 
use DBI;
use Win32::OLE;
 
# ces deux prochaines lignes ne serve peut-être à rien
Win32::OLE->Option(CP => Win32::OLE::CP_UTF8);
setlocale(LC_CTYPE, "fr_CA.ISO8859-1");
 
$dbh = DBI->connect("dbi:ODBC:driver=Microsoft Access Driver (*.mdb);dbq=$database", { RaiseError => 1, "mysql_enable_utf8" => 1 });
$dbh->{LongReadLen} = 65535;
$dbh->{LongTruncOk} = 1;
 
$SQL = "INSERT INTO Types_tab (Types) VALUES ('osé')"
$dbh->do($SQL);
 
$dbh->disconnect();

J'ai fait quelques essais en passant mes requètes SQL via win32OLE mais il semble y avoir des limitations et certaines commandes SQL ne sont pas supportées. Par contre, je n'ai pas de problèmes avec les accents!!

Si quelqu'un connait la petite astuce, je suis preneur!
D'avance merci

Ludovic