begin process at 2012 02 06 19:19:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Foxpro

 > 

Archives

 > 

Débutants

 > 

Vue !!!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Vue !!!

mardi 13 septembre 2005 à 08:56:25 | Vue !!!

spoutnic_37

aloha;

Je fais un programme qui est basé sur un base de donnée foxpro(.dbc, .dbf)et qui sera mise dans une clef usb.
Le probleme est que je voudrais pouvoir  mettre a jour la meme base de donnée qui serait elle sur le serveur de l'entreprise (donc on arrive on branche la clef sur l'ordi et on fait la mise ajour).
Je pense que je dois utiliser des vues distantes, mais je ne trouve rien dans la msdn pour me montrer comment faire.
De plus g aussi du mal avec une vue local, ou je n'arrive pas a supprimer des enregistrements!

Est ce que quelqu'un pourrait me dire comment faire , ou m'orienter vers des exemples sur le net?

mercredi 14 septembre 2005 à 13:25:23 | Re : Vue !!!

fonch001

Bonjour,

concernant ta remarque :
De plus g aussi du mal avec une vue local, ou je n'arrive pas a supprimer des enregistrements!

Lorsque tu fais ton SQL (ex: SELECT * FROM MaTable INTO CURSOR MonCurs), pense à ajouter "READWRITE" à la fin, sinon le curseur est en lecture seule. (ex : SELECT * FROM MaTable INTO CURSOR MonCurs READWRITE).

Et au cas où j'aurai mal compris, il faut aussi faire SET DELETE ON pour que les éléments "supprimés" n'apparaissent plus (un PACK supprime définitivement ces éléments "marqués pour suppression").




Sinon, je vois pas trop quel est ton soucis pour accéder aux données:
   *   tu peut utiliser les Data-environnements 
   *   tu peut faire des "USE"
   *   tu peut faire des requetes...

Il faut simplement que tu commences ton programme par une connexion à ta base...

Bon courage.


Quand le sage montre la lune, l'idiot regarde le doigt...
mercredi 14 septembre 2005 à 14:49:37 | Re : Vue !!!

spoutnic_37

justement parlons du pack!
j'ai fais une vue local, grace au generateur de vue, et je voudrais supprimer un enregistrement de cette vue , et donc des champs des deux tables qui la compose.

Mais apres avoir fait :
    use clients_contrat  && ma vue composé de champs des tables clients  et contrat
    delete for societe="A.C.M.S  "
    pack


!! operation non valide sur un objet curseur (1115)

je precise que j'utilise vfp 6
ps:le readwrite n'estpas utilisable , car pas reconnu par visual foxpro

mercredi 14 septembre 2005 à 15:18:35 | Re : Vue !!!

fonch001

Effectivement, le readwrite, c'est à partir de la version 7, donc ton curseur est forcément "read only".

Cela dit, ce que tu veux faire ne peut pas fonctionner: tu veux supprimer un élément dans une copie de tes tables (un curseur) et que cela supprime les éléments de tes tables si j'ai bien compris.

Pour cela tu vas devoir taper du code:
   sur ordre de suppression d'une lignes -> recherche des lignes correspondantes dans les tables (ici supprimer la societe "A.C.M.S" de la table societe.dbf et suprimer les contrats de la table contrats.dbf ayant "A.C.M.S." comme societe si j'ai bien compris ton idée) puis -> recalcul de la vue (forcément avec ces éléments en moins).

S'il y a une méthode plus simple, je suis preneur, mais je n'en connait pas.



En revanche si tu veut supprimer les éléments de ta requete SQL uniquement (sans toucher au valeurs dans les tables) un solution peut être de:
* faire une requete est la stocker dans curseur1 
* créer curseur2 de même format que curseur1
   exemple :
   SELECT curseur1
   DIMENSION t_fields(1)
   =AFIELDS(t_fields)
   CREATE CURSOR curseur2 FROM ARRAY t_fields
*copier chaque élément de curseur1 dans curseur2
   SELECT curseur1
   GO TOP
   DO WHILE !EOF()
         SCATTER MEMVAR
         SELECT curseur2
         APPEND BLANK
         GATHER MEMVAR
         SELECT curseur1
         SKIP
   ENDDO
* enfin, supprime curseur1 et utilise curseur2 pour ton affichage, ce curseur n'étant alors plus "read only".

Bon courage.


Quand le sage montre la lune, l'idiot regarde le doigt...
mercredi 14 septembre 2005 à 15:31:34 | Re : Vue !!!

spoutnic_37

tu avais bien compris.
Mais cette idée ne m'est pas venu toute seul, j'ai regardé la msdn qui dit :

chapitre 5:
"Pour extraire un ensemble d'enregistrements d'une table, modifier ces enregistrements et transmettre les modifications aux tables source, vous pouvez utiliser une vue Vous pouvez créer des vues à partir de tables locales, d'autres vues, de tables figurant sur un serveur"
mercredi 14 septembre 2005 à 16:17:56 | Re : Vue !!!

fonch001

Là, je ne connais pas, mais si quelqu'un connait, je suis preneur également.

jeudi 15 septembre 2005 à 14:03:11 | Re : Vue !!!

MichelAtoutFox

Membre Club
bon, quelques précisions s'imposent !

si tes données du serveur doivent être mises à jour avec les données de la clé (ou l'inverse, peu importe) depuis le serveur, alors c'est une vue locale! ton prog va tourner sur le serveur, et pour celui-ci, la clé est un disque local...

pour les vues, il faut bien comprendre que c'est une extraction de tes données dans un curseur, sur lequel un pack n'a aucun sens (pack supprime sur le disque les enregistrements marqués à delete SUR UNE TABLE)
si tu veux supprimer, tu marque à delete tes enregistrements dans ta vue, et ça va envoyer ces marques de delete sur la table. quand on travaille avec des vues, on ne s'occupe plus du pack sur les tables que pour de la maintenance (pour réduire la taille des tables)

pour mettre à jour tes tables depuis ta vue, regarde donc dans l'avant-dernier onglet du generateur de vue (critères de mise à jour): est-ce que la case envoyer les mises à jour est cochée? si elle est grisée, il te faut d'abord choisir la clé (c'est à dire le champ sur lequel VFP va se fier pour déterminer les enregistrements à mettre à jour - en SQL, on ne tientpas compte du recno), et les champs à mettre à jour. alors, tu décide que les mises à jour seront envoyées en cochant la case en bas à gauche.

voili, voilà pour l'essentiel
pour la suite, le mieux est de venir aux rencontres Atoutfox en novembre...
[ Lien ]

PS: oui, une vue peut extraire des enregitrements venant d'autres vues, qui elles-même peuvent etc. mais alors, attention pour les mises à jour, gare aux conflits, aux incohérences, et autres emm..
jeudi 15 septembre 2005 à 16:01:10 | Re : Vue !!!

spoutnic_37

ok michel, ca fait plaisir de te revoir !

mais j'ai un petit probleme. j'utilise ma vue pour alimenter un combo box, je veux supprimer un element de la liste, les table parents sont bien affectées , et les enregistrement correspondant disparaissent.
La vue également a ete affectée et l'enregistrement a disparu!
Le formulaire se ferme ( donc les table associées aussi!) si je reouvre le fomrulaire, que je regarde dans le combo box je retrouve l'element .

Comment faire pour que le combobox soit mis a jour ?


jeudi 15 septembre 2005 à 16:01:48 | Re : Vue !!!

spoutnic_37

ok michel, ca fait plaisir de te revoir !

mais j'ai un petit probleme. j'utilise ma vue pour alimenter un combo box, je veux supprimer un element de la liste, les tables parents sont bien affectées , et les enregistrement correspondant disparaissent.
La vue également a ete affectée et l'enregistrement a disparu!
Le formulaire se ferme ( donc les table associées aussi!) si je reouvre le fomrulaire, que je regarde dans le combo box je retrouve l'element .

Comment faire pour que le combobox soit mis a jour ?


jeudi 15 septembre 2005 à 17:26:01 | Re : Vue !!!

MichelAtoutFox

Membre Club
comme d'habitude, une question pour répondre à ta question:
les tables parents sont affectées, ça veut dire quoi? les enregistrements sont mis à delete? en es tu certain? je veux dire, as-tu réouvert tes tables pour le vérifier, en faisant un browse avec un set deleted off?

d'autre part, quel est ton buffermode?


1 2

Cette discussion est classée dans : base, arrive, donnée, vue, clef


Répondre à ce message

Sujets en rapport avec ce message

apparition d'une base de donnée [ par jee0404 ] bonjour,        En utilisant un programme que j'ai programmé en foxpro , il apparaît sans que je l'ai voulus une base de donnée nommer "0.dbf". Qu'est Création d'une base de donnée [ par LaMouche39 ] Bonjour, Informaticien à la retraite (j'ai commencé en 1968....Assembleur, cobol, pascal, Dbase,Clipper 5), je me remets à la programmation avec foxpr Base de donnée perte de donnée [ par rom87 ] Bonjour; Un client viens de me renvoyer un base endommagée[^^sad1]. Après réparation il se trouve que j'ai perdu toutes les données d'une colonne da visualiser et limiter le nombre de connection à une base de donnée Foxpro9 sur le serveur [ par wdev1 ] Salut,et encore mille merci pour votre aide. Voilà, j'ai une base de donnée DBC FXP9 sur le serveur d'un réseau de 10 poste. mon souci et de controle Base de Donnée DBF [ par benaoun12 ] Bonjour, j'ai des fichiers .DBF et je veux l'affiche dans une tableau sous java, mais le problème est: il y a des données dans quelques colonnes sous interaction avec la base de donnée [ par limelloyd ] Bonjour, je travaille actuellement sur un logiciel fait en VFP6, mais je ne sais pas comment avoir accès au table, le fichier *.dbc n'existe pas! et j Comment attaquer une base de données VFPro [ par gregv07 ] Bonjour à tous, désolé, la question vous semblera peut etre bête, mais je suis novice dans les bases de données ainsi qu'en développement. Voilà mon insertion de photo [ par hassoub ] Bonsoir, J'utilise une base de donnée Access que je modifie à l'aide d'une vue distante. Dans l'une de ces tables, il y a un champ photo. Comment ins Base invalide [ par kiwilee ] Bonjour, Je rencontre une erreur que je n'arrive pas a comprendre lors de la création d'un index. Voici ma commande : use matable exclusive index on Base corrompu : la base dbc.dbc n'est pas une table valide [ par superjay ] Bonjour, une petit problème avec ma base elle m'affiche : la base dbc.dbc n'est pas une table valide cause : mon serveur nas a crasher je ne suis pa


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales