Ce système permet d'utiliser des données Foxpro en mode client/serveur. Il utilise VFPOLEDB.DLL, ADO et l'objet CursorAdapter. Au vu du faible nombre de lignes de codes, il est très simple. Toutefois, ce n'est pas ODBC qui est utilisé, donc l'utilisation de SQLEXEC() ou des vues distantes ne permet pas d'exploiter le serveur de données. Il faut donc se familiariser avec ADO et l'objet CursorAdapter.
Sur le serveur : - Compiler le projet REMOTEFOX.PJX (contenant SERVEUR.PRG) en REMOTEFOX.DLL (MTDLL) - Configurer ce composant serveur dans le 'Service de composant" de windows 2000/XP. - Exporter un fichier d'installation "Proxy d'application" .MSI pour la configuration des postes clients.
Sur le poste Client : - Exécuter le fichier MSI pour le référencement du composant. - Des exemples d'utilisation sont dans CLIENT.PRG
Technique utilisée: Le serveur utilise ADO et le driver VFPOLEDB pour accèder aux bases de données Foxpro. Il retourne les données au client via un objet ADO RecordSet. Grâce au système dit "COM Marshaling", lors de l'utilisation d'un composant "out-of process", le Recordset est retourné par valeur et non par référence. Le client manipule donc un RecordSet "déconnecté". Il est possible de retourner un RecordSet par référence (en le lisant avant son ouverture sur le serveur), mais dans ce cas c'est beaucoup trop lent. Le client utilise un objet CursorAdapter pour exploiter le RecordSet. Les modifications apportées au curseur sont retournées au serveur via le RecordSet attaché au CursorAdapter. Le RecordSet est reconnecté à la source de données pour mise à jour du DBF.
Parmi les exemples, les procédures P3 et P4 utilisent une sous-classe de CursorAdapter spécialement conçue pour faciliter l'utilisation du mode client/serveur. La procédure P2 envoit un script au serveur. La précédure P4 utilise une procédure stockée.
Code source :
*** SERVEUR.PRG : DEFINECLASS serveur AS Session OLEPUBLIC