salut à tous,
alors voilà mon objectif : je souhaite créer une
application MFC fonctionnant sous windows mobile 5.0 qui permettrait
d'ouvrir des bases de données de type Access. c'est à dire que je force
pas l'origine de la base à Access pour résoudre mon problème, mais je
souhaite pouvoir retrouver mes tables dans un fichier si possible
unique, et sans avoir à passer par un serveur/client ou je ne sais trop
quoi comme mysql.
le format .cdb m'avait l'air intéressant, ou bien .sdf mais je sais pas comment faire une base .sdf.
Je précise aussi que je ne souhaite pas développer en DotNet.
Jusqu'à maintenant j'ai déjà :
- réalisé une appli fonctionnant exclusivement sur pc (winxp) ouvrant
et ayant accès aux données d'une base .mdb, avec des RecordSet.

- testé cette appli pour pocket et ai fait chou blanc à cause d'un certain ole2.h qui n'est pas identique pour pc et pocket.
- essayé moult choses avec mysql avant de comprendre qu'il fallait
passer par un serveur. (j'ai pas très très bien tout compris)
-
tenté des trucs avec les fonctions CEOpenDatabase() et
CEOpenDatabaseEx2(), CEMountDBVol() sans succès :
ERROR_INVALID_PARAMETER à chaque coup sans comprendre pourquoi. Si je
crée une base avec CECreateDatabase() pas de problème pour l'ouvrir
mais impossible d'ouvrir une base cdb. c'est peut-être normal ??
- tenté d'utiliser SQL Server Mobile 2005, avec l'aide... ça me dit
d'inclure des fichiers d'entête que je n'ai pas forcément sous le même
nom exact. exemple : ca_merge30.h ou ca_mergex20.h au lieu du
ca_mergex30.h réclamé. et même en essayant d'ajouter tous ces fichiers,
je n'arrive pas à utiliser SqlCeEngine.
- j'ai essayé aussi CCEDBDatabase sans succès.
- ainsi que quelque chose comme SQLConnection, mais pas mieux.
et la je craque.



voici un extrait de code, si jamais il y a une erreur grosse comme un
éléphant qui traine et cause l'invalid_parameter et que quelqu'un veut
bien me la montrer...
CEGUID cedb;
CEOID ceoidDB = 0;
HANDLE db = NULL;
CFileDialog openfile(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_FILEMUSTEXIST,
TEXT("Pocket Access Databases (*.cdb)|*.cdb"),NULL,0);
if (openfile.DoModal() == IDOK)
{
if (CeMountDBVol(&cedb,openfile.GetPathName().GetBuffer(),OPEN_EXISTING))
MessageBox(TEXT("YES"),TEXT("YES"),MB_OK);
else
{
switch(GetLastError())
{
case ERROR_DISK_FULL:
MessageBox(TEXT("ERROR_DISK_FULL"),TEXT("ERREUR"),MB_OK);
break;
case ERROR_PATH_NOT_FOUND:
MessageBox(TEXT("ERROR_PATH_NOT_FOUND"),TEXT("ERREUR"),MB_OK);
break;
case ERROR_NOT_ENOUGH_MEMORY:
MessageBox(TEXT("ERROR_NOT_ENOUGH_MEMORY"),TEXT("ERREUR"),MB_OK);
break;
case ERROR_ACCESS_DENIED:
MessageBox(TEXT("ERROR_ACCESS_DENIED"),TEXT("ERREUR"),MB_OK);
break;
case ERROR_ALREADY_EXISTS:
MessageBox(TEXT("ERROR_ALREADY_EXISTS"),TEXT("ERREUR"),MB_OK);
break;
case ERROR_INVALID_PARAMETER:
MessageBox(TEXT("ERROR_INVALID_PARAMETER"),TEXT("ERREUR"),MB_OK);
break;
default:
MessageBox(TEXT("Default"),TEXT("ERREUR"),MB_OK);
break;
}
}
return FALSE;
Voilà,
donc si quelqu'un a déjà vu passer ce genre de projet (réussi) ça
serait sympathique de me filer un lien, sinon je suis ouvert à toute
suggestion, plus ou moins constructive. mais rien du genre passe en C#
ou en VB et en DotNet merci 
Merci aux bonnes âmes qui daigneront me répondre.
Eventuellement, je ne suis pas contre quelque explication à propos du
fonctionnement de mysql et autres systèmes par rapport à Access.

Loki
