Bonjour,
Je suis actuellement en train de faire des test sur la création d'un connexion Read entre une application MFC et un fichier EXCEL.
Pour se faire j'utilise le code suivant:
Le désavantage de cette instruction c'est que mon emplacement de fichier est statique, or je souhaiterai lier ce chemin à une saisie sur l'interface graphique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CDataSource dataSource; hr = dataSource.OpenFromInitializationString(L"Provider='Microsoft.ACE.OLEDB.12.0';Data Source =D:\WTLExcel.xls;Extended Properties=\"Excel 8.0;MAXSCANROWS=0;ImportMixedTypes=Text;IMEX=1;HDR=yes;READONLY=FALSE\"");
J'ai donc modifier l'instruction précédente comme ceci (N.B :l'interface MFC n'est pas encore réalisé):
Lorsque je déroule mon programme la connexion échoue.
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 paramètre passé dans ma fonction test: std::string str("D:\\WTLExcel.xls"); fonction : bool test(std::string file) { .... CDataSource dataSource; std::stringstream stream; stream << "Provider='Microsoft.ACE.OLEDB.12.0';Data Source=" << file << ";Extended Properties="<<'\\'<<'\"'<<"Excel 8.0;MAXSCANROWS=0;ImportMixedTypes=Text;IMEX=1;HDR=yes;READONLY=FALSE"<<'\\'<<'\"'; file = stream.str(); USES_CONVERSION; char* iniStr =const_cast<char*>(file.c_str()); hr = dataSource.OpenFromInitializationString(A2COLE(iniStr));
Je me suis assuré que les chaine de caractères passé en paramètres de la fonction "OpenFromInitializationString" soit identique.
J'en est déduis que l'instruction "L" dans la première version permettait la connexion, ainsi je souhaiterai si il y a un moyen de l'ajouter dans la version dynamique pour la rendre fonctionnel.Où alors de corrigé la forme de ma deuxieme instruction.
Merci d'avance.
P.S : je découvre les MFC et le protocole OLEDB.
Partager