[ V FoxPro ] Les vues, dites moi si j'ai compris le principe.

Les vues, dites moi si j'ai compris le principe. [ V FoxPro ] - SQL/NoSQL - Programmation

Marsh Posté le 09-04-2004 à 09:42:29    

Bon, j'ai un problème avec mes vues.
Prenons un exemple:
 
 
Légende :  
#clé_primaire
clé étrangère
 
table1: #idclient, nomclient, numdep
table2: #numdep,nomdep
 
Ma vue contient les champs de:  
table1.idclient,table1.nomclient,table2.nomdep
 
Le tout via une jointure qui est bien évidemment table1.numdep=table2.numdep  
 
Mon soucis, quand j'ajoute un enregistrement dans ma vue, est-ce que mes tables sont automatiquement mises à jour ou pas en principe?
 
Pour l'instant je me contente de bidouille qui me plaisent peu.
 
Si le département n'existe pas, je dois le rajouter dans table2 (ça c'est normal à mon gout :D).
Je dois insérer mon nouvel enregistrement dans table1 ET dans ma vue. La vue rajoute juste le champs numdep qui va bien dans table1 et qui correspond au nom associé.(ça c'est moins normal je trouve O_o)
 
N'hésitez pas à demandez des précisions, on me dit toujours que j'explique mal la première fois :whistle:
 
Merci :hello:


Message édité par jeoff le 09-04-2004 à 09:43:48
Reply

Marsh Posté le 09-04-2004 à 09:42:29   

Reply

Marsh Posté le 09-04-2004 à 16:39:27    

C'est quoi V FoxPro ?
 
en général les vues, ça sert qu'à lire des tables, non ?
donc si tu as des enregistrements à insérer tu les mets dans les tables, et la vue les verra :D

Reply

Marsh Posté le 09-04-2004 à 18:31:42    

+1
 
Je connais pas VFoxPro. Avec Oracle, les vues sont en lecture seule.
 
Ajoute un département et un client dans chaque table. Ta vue sera automatiquement mise à jour ;)


Message édité par Vinx le 09-04-2004 à 18:33:51
Reply

Marsh Posté le 13-04-2004 à 10:11:00    

Ok, ben ça as bien du mal alors sous foxpro.
Pour l'instant, je dois faire une écriture de mes tables + mise à jour de la vue à la main, c'est pas très "saint" comme méthode ... :whistle:.
 
Je vais me plonger là dedans.
 
Sinon, Visual FoxPro c'est un soft de dévellopement d'appli orienté base de donnée. Ca sert principalement à faire des interface client pour base de données. C'est plus chiant que EasyPHP/MySQL mais ça peut être plus ergonomique pour les utilisateurs de base m'as t'on dit (ou plutôt "vendu" :D).  
 
Comme c'est le soft pour mon stage, ben je fais avec ... :'(

Reply

Marsh Posté le 14-06-2004 à 14:34:07    

Ta vue est comme son non l'indique une vue de la table à laquelle elle est ratachée. Elle peut te présenter tout ou une partie des donée de la table, en fonction de la manière dont tu a paramètrer ta vue.
L'écriture dans ta table se fait directement via la vue serveur, quand tu ouvre ta table, en fait c'est la vue qui est ouverte. Donc si tu écrit dans ta vue, les données seront au final écrite dans ta table. Pour cela, il faut ouvrir une transaction (begin transaction), puis exécuter toutes les requêtes que tu a à faire sur cette table. A ce moment là, aucune données ne sont encore écrite dans la table, il faut utiliser la commande TABLEUPDATE pour que l'ensemble des requêtes sur cette table remonte au serveur, puis valider les requêtes (end transaction) ou les annuler (rollback)

Reply

Marsh Posté le 16-06-2004 à 17:52:45    

Vinx a écrit :

+1
 
Je connais pas VFoxPro. Avec Oracle, les vues sont en lecture seule.
 
Ajoute un département et un client dans chaque table. Ta vue sera automatiquement mise à jour ;)


Faux. A partir de la 9i au moins, Oracle sait faire des vues qui permettent de faire des INSERT et des UPDATE ou DELETE.
 
Si les relations dans la base de données sont bien stipulées (pk et fk) avec la syntaxe dédiée et non des index, ca marche bien.
Ceci en réponse à Microsoft et SQL Server 2000 qui gère les vues update-able.
 
Ceci dit, même M$ qui est le précurseur de ce type de vues recommande formellement de ne pas utiliser cette fonctionnalité. En effet, tout champ inexistant dans la vue sera mis à sa valeur par defaut (ou null) et parfois ca peut être catastrophique (ou lever des erreurs, style si une valeur null tente de s'inserrer dans un index.

Reply

Marsh Posté le 16-06-2004 à 17:56:35    

Sinon, je ne sais pas comment fonction Visual FoxPro, mais logiquement, une vue n'a pas besoin d'être mise à jour (à moins que VFP supporte les vues stockées, qui sont en réalité des tables temporaires mises à jour régulièrement, qui peuvent donc être désynchronisées), mais j'en doute grandement.
 
Il faut voir une vue comme une simple requête qui est stockée sur le serveur, et dont le plan d'éxécution est compilé (donc très rapide à l'éxécution). A chaque lecture dans la vue, la requête est effectivement éxécutée, et les tables utilisées par la vue lues.
 
Donc la moindre mise à jour dans les tables utilisées par la vue sont répercutées dans la vue dès que la transaction est terminée (et pour l'utilisateur qui effecture les mises à jour, immédiatement)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed