| Retour
tcp OpenClient - Exemples de code| xShell utilise principalement la librairie tcp OpenClient pour les synchronisations de données. Vous trouverez de nombreux exemples de code dans la librairie syn_. |
| Voici quelques idées de code simple pour apprendre à utiliser cette librairie : |
| Faire une recherche sur le serveur et ramener la sélection sur le client : |
| La recherche se fait avec la méthode tcp_Search . Pour ramener la sélection sur le client, utilisez la méthode tcp_LoadSelection . Ceux sont des tableaux qui vont être renseignés. |
| $err:=tcp_SetSearch (10;Vers sélection courante ) `recherche limitée à 10 enregistrement |
| $nbFound:=tcp_Search (5;4;"Dupont") `recherche dans la table 5, champ 4 (nom client) |
| : (tcp_LoadSelection (5;4;"arrt_ClientLastName")#0)`les noms des clients sont placés dans le tableau arrt_ClientLastName |
| `affichage de la selection |
| La méthode tcp_LoadSelection utilise un tableau dont le nom est passé entre guillemet. Ce tableau doit exister sur le serveur et sur le client. Cette méthode accepte deux paramètres supplémentaires qui sont utilisés pour réaliser une selection limitée vers tableau. Les deux paramètres détermine le début et la fin de la sous selection. |
| Créer une selection sur le serveur et faire une boucle sur cette sélection en appliquant un traitement : |
| Dans le code ci-dessous, nous cherchons les clients qui n'ont de numéro de téléphone. Puis nous faisons une boucle sur les enregsitrements trouvés et nous ramenons sur le poste client l'identifiant unique du client pour chercher dans notre fichier de donnés local le numéro de téléphone. Le champ est renseigné sur le serveur et l'enregistrement est stocké. |
| $err:=tcp_LoadField (5;1;->vtIDClient) `l'identifiant du client est ramené en local |
| CHERCHER( [Client] ; [Client]ID =vtIDClient) |
| La méthode tcp_SendField a une syntaxe particulière. Les deux premiers paramètres indique le numéro de la table et du champ local. Le troisième paramètre indique sous la forme d'une chaine concaténée le numéro de la table et du champ, chacun séparé par un point virgule. Tous les types de champ sont acceptés sauf les champs racines. |
| Créer un enregistrement sur le serveur et envoyer l'enregistrement local : |
| Supposons que nous venons de créer un nouveau client, voici ce qu'il faut écrire pour l'envoyer sur le serveur : |
| La méthode tcp_CreateRecord dispose d'une autre syntaxe qui permet de tester avant la création si l'identifiant unique de l'enregistrement local existe déjà sur le serveur, si tel est le cas, tcp_CreateRecord renvoie -1. |
| Pour completer le traitement des données, vous disposez dans tcp OpenClient d'un jeux de méthodes qui traite toutes les manipulations sur les ensembles. |
| Focus sur quelques méthodes |
| Voici quelques méthodes qui peuvent être utiles : |
| Lire et écrire une variable sur le serveur |
| La méthode tcp_GetVariable vous permet de rapatrier en local une variable valorisée sur le serveur. Le premier paramètre est le nom de la variable sur le serveur et le deuxième paramètre est un pointeur sur la variable locale. |
| Après execution, la variable vBlob contient le blob "vBlob". |
| Un troisième paramètre de type entier long permet de préciser un numéro de process. Ainsi, ce n'est pas le contenu de la variable vBlob du process serveur qui va être lue mais la variable vBlob du process dont le numéro est passé en 3ème paramètre. La méthode tcp_GetProcessList vous permet d'obtenir la liste des process du serveur avec leurs informations. |
| La méthode tcp_SetVariable affecte la variable distante avec la valeur de la variable locale. |
| Faire executer une méthode ou du code par le serveur : |
| Que se soit une commande 4D, une méthode ou un bloc de code, vous pouvez en demander l'execution par le serveur avec la méthode tcp_SendMethod. Le bloc de code sera traité par la méthode exe_ . Il y a un impératif, il ne peut contenir de variable locale ou de variable inconnue du compilateur. |
| Vous reprenez la main immédiatement. Le code d'erreur renvoyé par la méthode traite de la communication, pas du bon déroulement de l'execution sur le serveur. Le process de requête sera occupé jusqu'à la fin du traitement que vous lui demandez de réaliser et vous ne reprendrez votre communication avec lui qu'à la fin du traitement. |
| Obtenir des informations sur l'environnement du serveur : |
| La méthode tcp_GetInfo interroge le serveur sur son environnement. |
| La syntaxe $SrvHeureCourante:=heure(tcp_GetInfo("heure courante")) vous donne l'heure du serveur. |
| C'est la méthode tcp_SendInfo qui répond à la requête du client. Vous pouvez la regarder pour connaître les autres syntaxes possible et la compléter selon vos besoins. |
| Haut de page | Retour
|