Comment faire une application client serveur avec vfp

Résolu
cs_hakima75 Messages postés 29 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 13 septembre 2011 - 12 août 2010 à 12:57
cs_hakima75 Messages postés 29 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 13 septembre 2011 - 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

49 réponses

michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
22 nov. 2010 à 11:03
Réponse simple: NON
il n'y a jamais eu de version gratuite de VFP
3
cs_aumeric Messages postés 16 Date d'inscription mercredi 25 février 2004 Statut Membre Dernière intervention 11 janvier 2018
24 nov. 2010 à 11:35
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
3
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
12 août 2010 à 13:18
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.
0
cs_hakima75 Messages postés 29 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 13 septembre 2011
12 août 2010 à 14:26
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
12 août 2010 à 15:53
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.
0
Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 2
12 août 2010 à 20:29
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
0
babazou38 Messages postés 22 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 1 décembre 2010
14 août 2010 à 16:13
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
0
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
14 août 2010 à 17:04
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!
0
cs_hakima75 Messages postés 29 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 13 septembre 2011
15 août 2010 à 11:02
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
0
Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 2
15 août 2010 à 12:48
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
0
cs_hakima75 Messages postés 29 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 13 septembre 2011
15 août 2010 à 13:34
Merci Mike,

Je vais faire pour toutes mes tables shared in 0.

Je vous tiendrais au courant .
0
babazou38 Messages postés 22 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 1 décembre 2010
15 août 2010 à 16:11
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
0
cs_hakima75 Messages postés 29 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 13 septembre 2011
17 août 2010 à 15:01
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.
0
babazou38 Messages postés 22 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 1 décembre 2010
17 août 2010 à 15:44
>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
0
cs_hakima75 Messages postés 29 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 13 septembre 2011
18 août 2010 à 12:21
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 ?
0
cs_hakima75 Messages postés 29 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 13 septembre 2011
18 août 2010 à 15:52
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
0
babazou38 Messages postés 22 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 1 décembre 2010
19 août 2010 à 07:50
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 ?
0
cs_hakima75 Messages postés 29 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 13 septembre 2011
19 août 2010 à 10:38
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
0
babazou38 Messages postés 22 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 1 décembre 2010
19 août 2010 à 11:02
>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 ...
0
cs_hakima75 Messages postés 29 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 13 septembre 2011
19 août 2010 à 11:16
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.
0
Rejoignez-nous