Comment faire une application client serveur avec vfp [Résolu]

cs_hakima75 29 Messages postés mardi 4 août 2009Date d'inscription 13 septembre 2011 Dernière intervention - 12 août 2010 à 12:57 - Dernière réponse : cs_hakima75 29 Messages postés mardi 4 août 2009Date d'inscription 13 septembre 2011 Dernière intervention
- 9 févr. 2011 à 18:20
bonjour tout le monde,

voila , mon soucis est que je ne sais faire que des applications mono poste avec vfp.

J'ai essayé de faire conseillé par des informaticiens, leurs réponses sont unanimes: abandonnes ton vfp.

Je voudrais savoir s'il ya des gens qui ont réussi dans ce domaine avec vfp ?

Merci
Afficher la suite 

Votre réponse

49 réponses

Meilleure réponse
michelatoutfox 834 Messages postés mardi 5 octobre 2004Date d'inscription 7 mai 2013 Dernière intervention - 22 nov. 2010 à 11:03
3
Merci
Réponse simple: NON
il n'y a jamais eu de version gratuite de VFP

Merci michelatoutfox 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de michelatoutfox
Meilleure réponse
cs_aumeric 15 Messages postés mercredi 25 février 2004Date d'inscription 19 décembre 2010 Dernière intervention - 24 nov. 2010 à 11:35
3
Merci
Selon ce que tu veux faire
par exemple si impose que la zone de texte "a" puisse être
vide ou supérieure à 3 caractères
il faudra changer ta condition

if len(alltrim(this.value)) == 0 .or. len(alltrim(this.value)) > 3
retour =.t.
else
retour = .f.
endifSi parcontre tu admet que ton utilisateur peut être appelé au téléphone et souhaite annuler sa saisie pour quitter l'appli, tant qu'il saisi 1 ou 2 caractères, il ne peut sortir de la zone de texte, et donc ne peut rien faire d'autre.
le fait de l'autoriser à saisir une zone vide, lui permet de sortir de cette zone et d'aller annuler sa saisie.
Dans la méthode de contrôle de saisie, il te faut alors vérifier que la zone de texte "a" ne soit pas vide auquel cas , tu indiquerais à ton utilisateur, que la saisie est incomplète.

Autre exemple :
Dans une zone de texte qui recoit la lecture d'un code barre, un traitement s'execute, juste après la lecture du code barre. ce traitement se fait dans la méthode valid

après chaque traitenent on vide la zone, et on retourne .f. pour que le focus reste sur cette zone pour la lecture du code barre suivant.
Il faut prévoir qu'à un moment l'utilisateur doit sortir de cette zone.
Soit c'est la lecture d'un code barre de fin
soit c'est la saissie d'un ou plusieurs caractères particuliers

ex
-----------------------
dim retour as boolean
retour =.f.
*!* -------- traitement du code barre --------------
thisform.montraitementducodebarre(this.value)
*!* ------------------- la porte de sortie --------
if this.value="000000"
retour = .t.
endif
return retour
------------------------------------------------
Cette méthode traite chaque lecture de code barre avec la méthode montraitementducodebarre du formulaire
et lorsque l'utilisateur saisie "00000" dans la zone de saisie, ou lorsqu'il scanne un code barre qui vaut "00000", le focus sort de la zone de texte et lui permet de faire autre chose



J'espère que cela t'aide dans ton développement


Cordialement
Eric

Merci cs_aumeric 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de cs_aumeric
michelatoutfox 834 Messages postés mardi 5 octobre 2004Date d'inscription 7 mai 2013 Dernière intervention - 12 août 2010 à 13:18
0
Merci
Bonjour,

pour commencer, une application multi-postes, multi-utilisateurs n'a pas besoin d'être client/serveur! ce sont 2 concepts différents.

1) application non client/serveur:
Dans une aplication VFP multi-postes et multi-utilisateurs (et je te rassure, nous devons être des milliers à avoir écrit des choses commeça, utilisées par des millions d'utilisateurs depuis des années), le code est exécuté en totalité sur le client.
les données peuvent être partagées, elles résident dans un ou plusieurs dossiers partagés accessibles par les utilisateurs du réseau. On parle de serveur de fichier.

2) application client serveur
on différencie la couche de données et les autres couches (métier et présentation). par exemple, tu vas avoir tes données dans un serveur SQL, et dans la couche métier écrite en VFP, tu vas demander à ce serveur SQL de t'extraire ces données, que tu vas recevoir dans un alias VFP. C'est ton serveur SQL qui travaille pour te fournir ces données, pas ton client VFP.
Et tu peux aussi avoir ton code métier qui tourne comme service sur une autre machine (par exemple à travers un objet COM+ écrit en VFP, ou un web service).

Il faut bien comprendre que le passage d'une application monoposte en multi-poste multi-utilisateurs ne se fait pas magiquement, il faut reprendre ton code.
Et c'est encore plus vrai si tu veux passer en client/serveur (tu peux te préparer à en réécrire au moins 80%)

Alors, faut-il suivre le conseil des "informaticiens" qui t'ont dit d'abandonner VFP? je dirais oui, malheureusement! VFP n'est plus supporté par Microsoft, et les dbf ne sont plus du tout adaptés aux nouveaux matériels.
Commenter la réponse de michelatoutfox
cs_hakima75 29 Messages postés mardi 4 août 2009Date d'inscription 13 septembre 2011 Dernière intervention - 12 août 2010 à 14:26
0
Merci
merci pour votre réponse monsieur michel,

donc si j'ai une application mono poste en vfp et que je voudrais qu'elle soit utilisée par plusieurs utilisateurs en même temps et cela pour longue durée, il vaut mieux la réécrire en un autre langage ?
Commenter la réponse de cs_hakima75
michelatoutfox 834 Messages postés mardi 5 octobre 2004Date d'inscription 7 mai 2013 Dernière intervention - 12 août 2010 à 15:53
0
Merci
longue durée, ça veut dire quoi?

si tu dois réécrire, oui, à mon avis, autant en profiter pour changer de support de données et changer de langage.
Commenter la réponse de michelatoutfox
Mike Gagnon 381 Messages postés vendredi 15 octobre 2004Date d'inscription 24 octobre 2013 Dernière intervention - 12 août 2010 à 20:29
0
Merci
Contrairement à l'avis de Michel (sur la question de changer de language), je t'offre l'avis contraire. Premièrement je ne vois pas la pertinence de te suggérer de changer de language pour rendre ton application utilisable par plus de 1 usager à la fois. Deuxièmement que Microsoft supporte Foxpro ou non, ce n'est pas Microsoft qui va supporter ton application, mais bien toi, donc si tu est confortable avec Foxpro reste avec Foxpro, et supporte tes applications.

Mike Gagnon
Commenter la réponse de Mike Gagnon
babazou38 22 Messages postés dimanche 27 janvier 2008Date d'inscription 1 décembre 2010 Dernière intervention - 14 août 2010 à 16:13
0
Merci
Je suis d'accord avec Mike. Michel est un informaticien de haut niveau qui a l'habitude des très grosses bases de données et des techniques de pointe. Si ton application est monoposte et monoutilisateur, il y a de fortes chances que tu veuilles simplement qu'une dizaine de personnes puissent travailler en même temps.
Tu risques d'avoir peu de travail à faire si ton appli actuelle est bien faite comme tu risques d'en avoir beaucoup si tu as fait une programmation en 'amateur' (et c'est seulement dans ce dernier cas, où la réécriture est importante que tu pourrais, éventuellement, changer de langage).

Le premier point essentiel est qu'il faut gérer le partage des données. Si ce n'est pas déjà fait, cela va être le gros travail : il ne faut pas que deux utilisateurs puissent modifier en même temps la même donnée. Il y a plusieurs solutions pour cela. Il faudrait que tu nous en dises plus sur ton appli pour que nous en discutions. L'ideal est de créer une base de données (CREATE DATABASE), d'y mettre les tables et d'accéder aux tables par des vues SQL. A l'opposé, les RLOCK() fonctionnent encore. La création d'une base de données VFP peut être une bonne solution intermédiaire si plus tard ton appli est utilisée par des centaines d'utilisateurs. Parce qu'une fois la base VFP maitrisée, il est 'assez facile' de copier les données vers une base plus 'sérieuse' comme SQL Server : l'essentiel du travail (le SQL) est déjà fait.

Le deuxième point concerne 'l'avenir' de ton appli : c'est une appli commerciale que tu vends, c'est une appli personnelle, ... ? Il y a des problèmes de sécurité ? Si c'est une appli commerciale, ou s'il y a des problèmes de sécurité alors il faudra envisager de transmettre les données vers une base de données comme SQL Server MAIS tu pourras garder VFP en tant que 'client'. Dans les autres cas, VFP est un excellent outil.

Concernant l'avenir de VFP : Microsoft n'a JAMAIS supporté VFP. Toute l'aide qu'un programmeur peut demander arrive via les groupes d'utilisateurs (www.atoutfox.org par exemple) ou les forums. Ce n'est donc pas une raison pour abandonner l'outil qui est, techniquement, d'une trés grande efficacité. A mon humble avis, le problème va venir du système d'exploitation : VFP tourne sous W7 mais après ? Que va nous concocter Microsoft ? Alors comme j'ai encore des applis qui tournent sous DOS (et je suis un développeur professionel et VFP est 'toute ma vie'; sans lui je fais faillite), je suis assez serein pour les 15 ans à venir ...

Maintenant que tu sais où tu peux trouver une aide efficace, dis nous en un peu plus ...

Bon courage.

Jean à Grenoble
Commenter la réponse de babazou38
michelatoutfox 834 Messages postés mardi 5 octobre 2004Date d'inscription 7 mai 2013 Dernière intervention - 14 août 2010 à 17:04
0
Merci
Comme tu le vois, Hakima, il y a plusieurs points de vue, et c'est à toi de faire ton choix!

je voudrais juste corriger quelques erreurs dans ce que dit Jean:

il est completement faux de dire que Microsoft n'a jamais supporté VFP! il y avait une équipe de développement VFP chez Microsoft, qui nous a livré de nombreuses versions, des Services Pack, des patches correctifs, etc... Et qui répondait aux questions des MVP, qui étaient présents aux Rencontres (y compris en France), etc..
C'est tout ça qu'on appelle le support. Et c'est ça qui a disparu aujourdhui: plus d'équipe VFP chez Microsoft, plus de nouvelles versions, pas d'évolution ni d'adaptations.

Autre erreur dans les propos de Jean, il faut au contraire que 2 utilisateurs puissent modifier en même temps la même donnée. Il faut simplement que le moteur n'écrive pas physiquement en même temps au même endroit, et il faut également créer les règles du jeu" pour permettre de choisir en cas de conflit. C'est ce qu'on appelle gérer les accès concurrentiels, et ça se fait très très bien (en fox comme dans d'autres langages). Peu importe le nombre d'utilisateurs, c'est à faire dès que tu passes en multi-utilisateurs.

Tiens nous au courant, n'hésite pas à redemander de l'aide!
Commenter la réponse de michelatoutfox
cs_hakima75 29 Messages postés mardi 4 août 2009Date d'inscription 13 septembre 2011 Dernière intervention - 15 août 2010 à 11:02
0
Merci
D'abord, je tiens à tous vous remercier pour tous ces éclaircissements.

Et à la lumière de vos conseils, je crois que vais procéder par étape:
1- Faire évoluer mon application monoposte en multi-postes,multi-utilisateurs (non client/server) avec Vfp.
2-Observer les performances de la nouvelle application pendant 6 mois à 1 an.
3- Décider , si je passe au client/server avec ou sans Vfp.

En ce qui concerne l'application, il s'agit d'un classique : la gestion d'un cabinet médical, et à vous lire je crois qu'il n'y a pas plus amateur que ma programmation, car :
1- je n'ai pas de BDD , c'est des tables indépendantes.
2- je ne fais pas de gestion de conflits.
3- pour chaque formulaire, les tables utilisées sont dans l'environnement de données.

A titre d'exemple:
- pour consulter les données de table patient, lors d'une recherche par nom :
select IDPATIENT, nom, prenom, DATNAISS,;
from patient where ALLT(nom)=wnom
order by nom,prenom into cursor pat
thisform.grid2.recordsource="PAT"

- pour modifier un patient :
MONPATIENT=ALLT(thisform.IDPATIENTO.TEXT1.value)
SET PATH TO "C:\CAB\DATA"
IF USED("PATIENT")
select patient
ELSE
USE PATIENT
ENDIF
go top
=seek(monpatient,"patient","idpatient")
if !found()
=messagebox('erreur ! ce patient n'+"'"+'existe pas',0+16+0,'Cab')
ELSE
REPLACE NOM WITH WNOM
REPLACE PRENOM WITH WPRENOM
REPLACE DATNAISS WITH WDATNAISS
REPLACE TAILLE WITH WTAILLE
REPLACE SEXE WITH WSEXE
REPLACE ADRESSE WITH WADRESSE
REPLACE VILLE WITH WVILLE
REPLACE PROFESSION WITH WPROFESSION
REPLACE TEL WITH WTEL
REPLACE SECUSOCIAL WITH WSECUSOCIAL
REPLACE POID WITH WPOID
REPLACE ANTMED WITH WANTMED
REPLACE ANTCHIR WITH WANTCHIR
REPLACE ANTOX WITH WANTOX
REPLACE ANTFAM WITH WANTFAM
=messagebox('MODIFICATIONS EFFECTUEES !',;
0+16+0,;
'Cab')
ENDIF

- pour supprimer un patient :
set path to "c:\CAB\data"
*voir s'il ya des consultations pour ce patient.

if used("CONSULT")
select CONSULT
else
use CONSULT
endif
SELECT * from consult where idpatient==monpatient into cursor tempcons
go top
count to nbrcons
IF USED("TEMpcons")
SELECT TEMPcons
USE
ENDIF
if used("CONSULT")
select CONSULT
else
use CONSULT
endif
use
if nbrcons=0
*s'il ya pa de consult je pe supprimer
IF USED("PAT")
SELECT PAT
USE
ENDIF
set deleted off
set path to "c:\CAB\data"
delete from patient where idpatient==monpatient
set path to "c:\CAB\data"
if used("PATIENT")
select PATIENT
else
use PATIENT
endif
USE
set path to "c:\CAB\data"
use PATIENT exclusive
pack
use
set deleted on
=messagebox(" SUPPRESSION EFFECTUEE ! ",;
0+48+0, 'CAB')
else
=messagebox("SUPPRESSION IMPOSSIBLE, VEUILLER D'ABORD SUPPRIMER L'HISTORIQUE !",;
0+48+0, "CAB")
endif
Commenter la réponse de cs_hakima75
Mike Gagnon 381 Messages postés vendredi 15 octobre 2004Date d'inscription 24 octobre 2013 Dernière intervention - 15 août 2010 à 12:48
0
Merci
1. Foxpro se souviens de la première fois que tu fais:
set path to "c:\CAB\data"

Donc pas besoin de répéter à deux ligne de code.

2. Si tu fais:

use CONSULT

Toutes les autres table que étaient ouvertes se ferme et seulement CONSULT reste ouverte. Et il y a de bonnes chances que la table CONSULT est ouverte exclusivement (donc pour un seul utilisateur).
Si tu fais:

USE consult shared in 0

maintenant la table CONSULT est ouverte en mode partagé et aucune autre table se ferme. Ouvre toute tes tables de cette façon et toutes les tables vont rester ouverte. Mais si tu mets tables dans le Dataenvironnment des formes, pas besoin d'ouvrir et de fermer tes tables, la forme va s'en occuper.


Mike Gagnon
Commenter la réponse de Mike Gagnon
cs_hakima75 29 Messages postés mardi 4 août 2009Date d'inscription 13 septembre 2011 Dernière intervention - 15 août 2010 à 13:34
0
Merci
Merci Mike,

Je vais faire pour toutes mes tables shared in 0.

Je vous tiendrais au courant .
Commenter la réponse de cs_hakima75
babazou38 22 Messages postés dimanche 27 janvier 2008Date d'inscription 1 décembre 2010 Dernière intervention - 15 août 2010 à 16:11
0
Merci
Que déjà tu utilises le SQL est un bon point. Pour le reste, il y a du travail. Ce qui est, à mon humble avis, extraordinaire avec VFP, c'est que même si c'est mal programmé (au sens où on pourrait faire largement mieux) ton appli fonctionne et rend des services ...

Quelques points de détails (avant les gros points ;-) ):

- il y a une ambiguité : quand tu dis que toutes les tables sont ouvertes dans l'environnement de données des forms, normalement tu ne devrais plus faire de USE puisque, toujours normalement, l'environnement de données devrait le faire ! La première chose à vérifier est que ton environnement de données soit bien privé (private datasession; c'est une propriété de la form). La deuxième c'est utilises-tu vraiment le dataenvironment (DE) : c'est à dire une classe qui contient des méthodes (beforeopentables, ...) et des propriétés ou bien tu ne quittes pas la form pour ouvrir tes tables par exemple dans le LOAD event.

-au lieu d'utiliser tes variables w pour les champs puis de faire une série de REPLACE (que tu pourrais déjà condenser en une seule instruction) essaies :
SELECT patient && c'est un exemple
SCATTER NAME opatient
puis utilises opatient.nom, opatient.prenom, ... (et mieux m.opatient.nom, ... le m. indiquant une variable en mémoire) comme variables pour tes champs.
Tu mettras à jour la table avec
GATHER NAME opatient
- supprimes la 'suppression' ! En fait tu peux continuer à faire les DELETE mais il faut supprimer le PACK qui t'obliges à ouvrir la table en exclusif, ce qui sera impossible si un autre poste l'utilise. Mets les PACK dans une procédure à part (par exemple celle qui fait la reindexation). Toujours en ce qui concerne la suppression, il vaudrait mieux ajouter un champ logique 'valide' à tes tables et ne rechercher que les lignes pour lesquelles valide = .T. (DELETE n'est connu que par VFP et pas par d'autres BDD (SQL Server, ..). IL faut mieux s'en débarasser tout de suite).

Exercice : si une form a bien un environnement de données privé et n'est pas MODAL, si toutes les tables sont ouvertes 'SHARED', ... tu devrais pouvoir ouvrir plusieurs fois et simultanément la form pour gérer plusieurs patients en 'même temps' !

A la prochaine ..

PS c'est toi le médecin ? tu travailles dans une société ? ...
PS2 es-tu inscrites sur Atoutfox ?

A+
Jean à Grenoble
Commenter la réponse de babazou38
cs_hakima75 29 Messages postés mardi 4 août 2009Date d'inscription 13 septembre 2011 Dernière intervention - 17 août 2010 à 15:01
0
Merci
Merci beaucoup Jean pour tes éclaircissements.

Je les prendrais en compte pour la correction de mon application et de ma manière de programmer.

En ce qui concerne tes questions, voila :

1-la propriété datasession de ma form est "session de données par défaut".

2-Je n'ai jamais utilisé les méthodes beforeopentables,et le Load Event non plus (à vous lire j'ai bien compris que j'étais très loin du correct).

3-J'avoue que je n'ai pas très bien compris comment me débarrasser des Delete. Comment le champ Valide va-t-il me servir ?

4-Je ne suis pas médecin, je travail dans une administration, j'utilise vfp à la maison et l'application; je l'ai faite pour un membre de famille qui est médecin.

5-Oui je suis inscrite sur atoutfox, j'y accède de temps en temps , mais je ne suis jamais arriver à me mettre à leur niveau, j'espère qu'avec les modif que j'ai entamée (grâce à vos conseil) je pourrais comprendre tous ce qui se dit sur ce site.

6-Je crois qu'il faut que je fasse une application basique (1 table, 1 form, 1 menu ) correctement. Puis je reprends mon application pour toutes les corrections.

Je vous tiendrais au courant.
Et Merci encore.
Commenter la réponse de cs_hakima75
babazou38 22 Messages postés dimanche 27 janvier 2008Date d'inscription 1 décembre 2010 Dernière intervention - 17 août 2010 à 15:44
0
Merci
>1- : Alors, en fait, tu utilises toujours la session par défaut. On a été induit en erreur par un des termes que tu as utilisé dans ton premier message. Il est interessant d'avoir des sessions de données privées dans les forms et d'ouvrir toutes les tables nécessaires à la form à chaque 'lancement' de la form soit par code dans le LOAD event de la form (c'est ce que je préfère mais je suis un vieux qui préfère le code à la souris) soit en instanciant un vrai environnement de données.


3- C'est très simple. Au lieu d'avoir un index sur nom, idclient etc tu vas créer un index du style
INDEX ON nom TAG nom FOR valide=.T.
INDEX ON idclient TAG id FOR valide = .T.
et le tour est joué. Dans une procédure de reindexation tu pourras faire quelquechose comme
DELETE ALL FOR valide=.F.
PACK

MAIS : VFP est capable de gérer de grosses 'base de données' (100000 lignes ne lui fait pas peur) et effacer un client ne sert pas à grand chose (techniquement). Imagine qu'il revienne 10 ans après ?

5- ok. Je vois donc que l'informatique est une 'passion' (un passe temps ?). Et VFP est un excellent langage qui t'emménera loin ...

6- Alors avant de commencer, il faut apprendre à faire des vues (les autres vont dire que j'exagère mais je suis un fan des vues !). Tu peux créer (en prenant quelques précautions) ton 'appli basique' avec les mêms tables que ton appli actuelle (tu vas ajouter des index sans toucher à ceux existant, les vues sont un autre moyen d'accès aux données qui peut être utilisé en même temps que les 'vieilleries', ...). Pour créer ta première vue (par code) je t'enverrai un bout de programme (un de ces jours ...) parce que je vois pas comment t'expliquer par écrit comment le faire avec l'assistant.

A+

PS sur atoutfox, tu me trouveras en cherchant 'maurice'; je suis Jean à Grenoble
Commenter la réponse de babazou38
cs_hakima75 29 Messages postés mardi 4 août 2009Date d'inscription 13 septembre 2011 Dernière intervention - 18 août 2010 à 12:21
0
Merci
Bonjour,

J'ai fait l'application basique, qui a un formulaire utilisant une table.

j'ai ouvert deux sessions de cette application,
avec le premier utilisateur j'ai modifié un enregistrement.

Le problème est que tant que l'utilisateur1 ne sort pas du formulaire, l'utilisateur2 ne voit pas les nouvelles modifications, pourquoi ?
Commenter la réponse de cs_hakima75
cs_hakima75 29 Messages postés mardi 4 août 2009Date d'inscription 13 septembre 2011 Dernière intervention - 18 août 2010 à 15:52
0
Merci
Bonjour tous le monde ,

j'ai trouvé ou était le problème : j'avais pas mis lock et unlock dans la partie modification.

Merci beaucoup , je vous tiendrais au courant lorsque j'attaquerais les suppressions.

Je commence à maitriser le multi-utilisateurs, reste maintenant le multi-postes.

Bon courage les foxistes
Commenter la réponse de cs_hakima75
babazou38 22 Messages postés dimanche 27 janvier 2008Date d'inscription 1 décembre 2010 Dernière intervention - 19 août 2010 à 07:50
0
Merci
ATTENTION ! Le fait d'avoir mis RLOCK() et UNLOCK est une bonne chose car si RLOCK() renvoie .F., c'est qu'un autre utilisateur a réservé la ligne. C'est donc un moyen d'empêcher que 2 personnes travaillent en même temps sur le même dossier (on verra plus tard qu'il y a une autre approche). Comme, il faut que le verrou soit mis physiquement sur la ligne, cela force VFP à enregistrer sur le disque les données au moment du UNLOCK mais c'est un 'effet de bord' (ce n'est pas la fonction principale de RLOCK / UNLOCK). Parce que VFP (et Windows) met beaucoup de choses en mémoire pour aller plus vite.

Regarde aussi la commande SET REPROCESS.

MAIS :
ne t'investit pas trop dans ce type de commande, car il y a une autre méthode qui est beaucoup plus interessante si tu as l'intention plus tard de passer sous une autre BDD (SQL server) : c'est l'utilisation des vues, de la bufferisation (mise en mémoire tampon) optimiste/pessimiste et ligne/table, ... En gros, au lieu de réserver la ligne, on laisse tout le monde la lire et la modifier (la probabilité étant faible que 2 médecins travaillent sur le même patient) et on ne prévient l'opérateur que si, au moment pù il enregistre ses modifs, quelqu'un d'autre a touché à la même ligne.

Je vais essayer de te faire un petit programme pour créer ta première vue ... dès que j'aurai un peu de temps !

A+
Jean à Grenoble

PS Dans ton administration, tu fais de l'informatique où c'est juste un 'passe-temps' ?
PS2 tu as quelle version de VFP ?
PS3 tu es capable de lire l'aide en anglais ?
Commenter la réponse de babazou38
cs_hakima75 29 Messages postés mardi 4 août 2009Date d'inscription 13 septembre 2011 Dernière intervention - 19 août 2010 à 10:38
0
Merci
Bonjour Jean et je te remercie pour ta réponse.

-Dans mon administration ,j'occupe un poste administratif mais je fréquente beaucoup nos informaticiens, d'ailleurs c'est eux qui m'ont conseillé d'abandonner foxpro.
-J'ai la version 6.0 de vfp avec son livre.
-Oui je peux lire l'aide en anglais.

A te lire Jean, je croie que j'ai chanté victoire avant de l'avoir.
J'ai l'intention de faire une BDD SQL server ultérieurement, mais l'histoire des vues me parait très compliquée :
Sachant que je n'ai que 2 utilisateurs le médecin et son assistante, est-ce que pour chaque personne je dois créer une vue de ma table ?

Merci beaucoup
Commenter la réponse de cs_hakima75
babazou38 22 Messages postés dimanche 27 janvier 2008Date d'inscription 1 décembre 2010 Dernière intervention - 19 août 2010 à 11:02
0
Merci
>d'ailleurs c'est eux qui m'ont conseillé d'abandonner foxpro.
Ils ont tort !!!!

-> Version 6 de VFP : on est à la version 9 et il y a de grosses améliorations entre la 6 et la 9. Ceci dit, cela vaut-il le coup de l'acheter pour une seule petite application ....

-> L'histoire des vues est très simple une fois qu'on a fait la première. Le plus compliqué c'est le langage SQL mais tu commences déjà à le connaitre. Une fois une vue créée, elle peut-être utilisée plusieurs fois simultanément (elle s'ouvre SHARED comme une table (en simplifiant beaucoup !)). Tu vas créer une vue par 'besoin' : tu pourras bien en avoir une vingtaine différentes sur la même table.

-> A partir du moment où tu as plus d'un utilisateur, que tu en aies 2 ou 10 c'est pareil ...

A+
Jean

PS tu vas un peu vite pour moi. Attends mon exemple ... j'essaie de le faire au plus vite ...
Commenter la réponse de babazou38
cs_hakima75 29 Messages postés mardi 4 août 2009Date d'inscription 13 septembre 2011 Dernière intervention - 19 août 2010 à 11:16
0
Merci
Merci pour ta réponse Jean,

Je m'occupe des Delete et du multi-poste en attendant .

Hakima.

Pour VFP 9, je pense qu'ici le CD se vend à 100 DA (1euro), je vais acheter un et je chercherais la doc sur internet.
Commenter la réponse de cs_hakima75

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.