bonjour
je travaille en asp.net / VB
j'ai une base contenant une table A
cette table contient 5 pointeurs (en fait les index des 5 autre table a1,a2
etc...)
lorsque j'affiche cette table A l'utilisateur ne voit pour ces champs que
des n° , ce qui n'est pas pratique convenons en !
j'ai donc créé une vue qui elle affiche en clair le libelle des fichiers a1
,a2 etc.... en faisant une corrélation entre les pointeurs
j'arrive à ajouter des enregistrement à partir de cette vue
mais des que je fais une modification j'ai ce message....
"[SqlException: La vue ou la fonction 'R_produits' ne peut pas être mise à
jour car la modification affecte les tables de base multiples.]
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Paul Bacelar
A moins d'avoir de très bonnes raisons de faire une vue en base de données, préférez faire cette vue grâce aux DataView d'un DataSet.
-- Paul Bacelar
"JohnPaulGeorgesRingo" wrote in message news:
bonjour je travaille en asp.net / VB j'ai une base contenant une table A cette table contient 5 pointeurs (en fait les index des 5 autre table
a1,a2
etc...) lorsque j'affiche cette table A l'utilisateur ne voit pour ces champs que des n° , ce qui n'est pas pratique convenons en ! j'ai donc créé une vue qui elle affiche en clair le libelle des fichiers
a1
,a2 etc.... en faisant une corrélation entre les pointeurs
j'arrive à ajouter des enregistrement à partir de cette vue mais des que je fais une modification j'ai ce message.... "[SqlException: La vue ou la fonction 'R_produits' ne peut pas être mise à jour car la modification affecte les tables de base multiples.]
r_produits est ma requête ms SQL
merci a vous
A moins d'avoir de très bonnes raisons de faire une vue en base de données,
préférez faire cette vue grâce aux DataView d'un DataSet.
--
Paul Bacelar
"JohnPaulGeorgesRingo" <aSplendidTimeIsGuaranteedForAll@AppleRecord.fr>
wrote in message news:OpAfcj5BFHA.2192@TK2MSFTNGP14.phx.gbl...
bonjour
je travaille en asp.net / VB
j'ai une base contenant une table A
cette table contient 5 pointeurs (en fait les index des 5 autre table
a1,a2
etc...)
lorsque j'affiche cette table A l'utilisateur ne voit pour ces champs que
des n° , ce qui n'est pas pratique convenons en !
j'ai donc créé une vue qui elle affiche en clair le libelle des fichiers
a1
,a2 etc.... en faisant une corrélation entre les pointeurs
j'arrive à ajouter des enregistrement à partir de cette vue
mais des que je fais une modification j'ai ce message....
"[SqlException: La vue ou la fonction 'R_produits' ne peut pas être mise à
jour car la modification affecte les tables de base multiples.]
A moins d'avoir de très bonnes raisons de faire une vue en base de données, préférez faire cette vue grâce aux DataView d'un DataSet.
-- Paul Bacelar
"JohnPaulGeorgesRingo" wrote in message news:
bonjour je travaille en asp.net / VB j'ai une base contenant une table A cette table contient 5 pointeurs (en fait les index des 5 autre table
a1,a2
etc...) lorsque j'affiche cette table A l'utilisateur ne voit pour ces champs que des n° , ce qui n'est pas pratique convenons en ! j'ai donc créé une vue qui elle affiche en clair le libelle des fichiers
a1
,a2 etc.... en faisant une corrélation entre les pointeurs
j'arrive à ajouter des enregistrement à partir de cette vue mais des que je fais une modification j'ai ce message.... "[SqlException: La vue ou la fonction 'R_produits' ne peut pas être mise à jour car la modification affecte les tables de base multiples.]
r_produits est ma requête ms SQL
merci a vous
JohnPaulGeorgesRingo
oui merci cela l'air bien cf. http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpguide/html/cpconnavigatingrelationshipsusingdataview.asp mais cela semble s'appliquer plus spécialement a une relation mère/père & enfant : un enreg appelant moult enreg.
moi j'ai une table centrale contenant des liens vers une dizaine de tables périphériques contenant (ou pas ) des données images ou ntext. donc un enreg a des liens vers 10 enreg uniques dans 10 tables différentes (tables liens images, table descriptifs, table explication,etc...)
J'aurais pu les inclure directement dans ma "table centrale " mais celle ci serait devenu trop grosse, et souvent pour rien (pas tous les enreg ont des données gourmandes liées). j'aurais pu utiliser une procédure stockée, mais je ne maîtrise pas bien encore.
j'ai trouvé la solution : j'enregistre non pas dans la vue, mais directement dans les tables concernées les modifications apportées à la vue : la "table centrale " c'est facile et pour toutes les données périphériques, connaissant l'id de l'enreg en cour, je modifie par un appel SQL distinct les tables en liaison. un peu lourd, mais cela fonctionne.
merci en tout cas pour ce rappel important. cordialement JPGR
"Paul Bacelar" a écrit dans le message de news: OStoEy%
A moins d'avoir de très bonnes raisons de faire une vue en base de données, préférez faire cette vue grâce aux DataView d'un DataSet.
-- Paul Bacelar
"JohnPaulGeorgesRingo" wrote in message news:
bonjour je travaille en asp.net / VB j'ai une base contenant une table A cette table contient 5 pointeurs (en fait les index des 5 autre table
a1,a2
etc...) lorsque j'affiche cette table A l'utilisateur ne voit pour ces champs que des n° , ce qui n'est pas pratique convenons en ! j'ai donc créé une vue qui elle affiche en clair le libelle des fichiers
a1
,a2 etc.... en faisant une corrélation entre les pointeurs
j'arrive à ajouter des enregistrement à partir de cette vue mais des que je fais une modification j'ai ce message.... "[SqlException: La vue ou la fonction 'R_produits' ne peut pas être mise à jour car la modification affecte les tables de base multiples.]
r_produits est ma requête ms SQL
merci a vous
oui merci cela l'air bien
cf.
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpguide/html/cpconnavigatingrelationshipsusingdataview.asp
mais cela semble s'appliquer plus spécialement a une relation mère/père &
enfant : un enreg appelant moult enreg.
moi j'ai une table centrale contenant des liens vers une dizaine de tables
périphériques contenant (ou pas ) des données images ou ntext.
donc un enreg a des liens vers 10 enreg uniques dans 10 tables différentes
(tables liens images, table descriptifs, table explication,etc...)
J'aurais pu les inclure directement dans ma "table centrale " mais celle ci
serait devenu trop grosse, et souvent pour rien (pas tous les enreg ont des
données gourmandes liées).
j'aurais pu utiliser une procédure stockée, mais je ne maîtrise pas bien
encore.
j'ai trouvé la solution :
j'enregistre non pas dans la vue, mais directement dans les tables
concernées les modifications apportées à la vue : la "table centrale " c'est
facile et pour toutes les données périphériques, connaissant l'id de l'enreg
en cour, je modifie par un appel SQL distinct les tables en liaison.
un peu lourd, mais cela fonctionne.
merci en tout cas pour ce rappel important.
cordialement
JPGR
"Paul Bacelar" <paul.bacelar@PASDESPAMlaposte.net> a écrit dans le message
de news: OStoEy%23BFHA.2192@TK2MSFTNGP14.phx.gbl...
A moins d'avoir de très bonnes raisons de faire une vue en base de données,
préférez faire cette vue grâce aux DataView d'un DataSet.
--
Paul Bacelar
"JohnPaulGeorgesRingo" <aSplendidTimeIsGuaranteedForAll@AppleRecord.fr>
wrote in message news:OpAfcj5BFHA.2192@TK2MSFTNGP14.phx.gbl...
bonjour
je travaille en asp.net / VB
j'ai une base contenant une table A
cette table contient 5 pointeurs (en fait les index des 5 autre table
a1,a2
etc...)
lorsque j'affiche cette table A l'utilisateur ne voit pour ces champs que
des n° , ce qui n'est pas pratique convenons en !
j'ai donc créé une vue qui elle affiche en clair le libelle des fichiers
a1
,a2 etc.... en faisant une corrélation entre les pointeurs
j'arrive à ajouter des enregistrement à partir de cette vue
mais des que je fais une modification j'ai ce message....
"[SqlException: La vue ou la fonction 'R_produits' ne peut pas être mise
à
jour car la modification affecte les tables de base multiples.]
oui merci cela l'air bien cf. http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpguide/html/cpconnavigatingrelationshipsusingdataview.asp mais cela semble s'appliquer plus spécialement a une relation mère/père & enfant : un enreg appelant moult enreg.
moi j'ai une table centrale contenant des liens vers une dizaine de tables périphériques contenant (ou pas ) des données images ou ntext. donc un enreg a des liens vers 10 enreg uniques dans 10 tables différentes (tables liens images, table descriptifs, table explication,etc...)
J'aurais pu les inclure directement dans ma "table centrale " mais celle ci serait devenu trop grosse, et souvent pour rien (pas tous les enreg ont des données gourmandes liées). j'aurais pu utiliser une procédure stockée, mais je ne maîtrise pas bien encore.
j'ai trouvé la solution : j'enregistre non pas dans la vue, mais directement dans les tables concernées les modifications apportées à la vue : la "table centrale " c'est facile et pour toutes les données périphériques, connaissant l'id de l'enreg en cour, je modifie par un appel SQL distinct les tables en liaison. un peu lourd, mais cela fonctionne.
merci en tout cas pour ce rappel important. cordialement JPGR
"Paul Bacelar" a écrit dans le message de news: OStoEy%
A moins d'avoir de très bonnes raisons de faire une vue en base de données, préférez faire cette vue grâce aux DataView d'un DataSet.
-- Paul Bacelar
"JohnPaulGeorgesRingo" wrote in message news:
bonjour je travaille en asp.net / VB j'ai une base contenant une table A cette table contient 5 pointeurs (en fait les index des 5 autre table
a1,a2
etc...) lorsque j'affiche cette table A l'utilisateur ne voit pour ces champs que des n° , ce qui n'est pas pratique convenons en ! j'ai donc créé une vue qui elle affiche en clair le libelle des fichiers
a1
,a2 etc.... en faisant une corrélation entre les pointeurs
j'arrive à ajouter des enregistrement à partir de cette vue mais des que je fais une modification j'ai ce message.... "[SqlException: La vue ou la fonction 'R_produits' ne peut pas être mise à jour car la modification affecte les tables de base multiples.]
mais cela semble s'appliquer plus spécialement a une relation mère/père & enfant : un enreg appelant moult enreg.
moi j'ai une table centrale contenant des liens vers une dizaine de tables périphériques contenant (ou pas ) des données images ou ntext. donc un enreg a des liens vers 10 enreg uniques dans 10 tables différentes (tables liens images, table descriptifs, table explication,etc...)
Maître/détail marche même quand l'arité et de 0 ou 1 entre le maître et ces détails.
J'aurais pu les inclure directement dans ma "table centrale " mais celle
ci
serait devenu trop grosse, et souvent pour rien (pas tous les enreg ont
des
données gourmandes liées).
Faire des jointures pour récupérer les données, c'est pire que d'avoir une grosse table car les index sur cette table permettront d'avoir des performances très peu liées à la taille des données plutôt qu'au nombre d'enregistrement.
j'aurais pu utiliser une procédure stockée, mais je ne maîtrise pas bien encore.
Pour faire des mise à jours multi-table, les procédures sont indispensables pour reduire le temps de verrouillage durant les trnsactions de bases de données qui sont obligatoires dans ce cas de figure.
j'ai trouvé la solution : j'enregistre non pas dans la vue, mais directement dans les tables concernées les modifications apportées à la vue : la "table centrale "
c'est
facile et pour toutes les données périphériques, connaissant l'id de
l'enreg
en cour, je modifie par un appel SQL distinct les tables en liaison. un peu lourd, mais cela fonctionne.
Très dangereux en environnement concurrent sans l'utilisation de transaction et pas optimal d'un point de vue performance. Une table indexée serait bien plus performante.
merci en tout cas pour ce rappel important. cordialement JPGR
-- Paul Bacelar
"JohnPaulGeorgesRingo" <aSplendidTimeIsGuaranteedForAll@AppleRecord.fr>
wrote in message news:udh4BfECFHA.3236@TK2MSFTNGP15.phx.gbl...
mais cela semble s'appliquer plus spécialement a une relation mère/père &
enfant : un enreg appelant moult enreg.
moi j'ai une table centrale contenant des liens vers une dizaine de tables
périphériques contenant (ou pas ) des données images ou ntext.
donc un enreg a des liens vers 10 enreg uniques dans 10 tables différentes
(tables liens images, table descriptifs, table explication,etc...)
Maître/détail marche même quand l'arité et de 0 ou 1 entre le maître et ces
détails.
J'aurais pu les inclure directement dans ma "table centrale " mais celle
ci
serait devenu trop grosse, et souvent pour rien (pas tous les enreg ont
des
données gourmandes liées).
Faire des jointures pour récupérer les données, c'est pire que d'avoir une
grosse table car les index sur cette table permettront d'avoir des
performances très peu liées à la taille des données plutôt qu'au nombre
d'enregistrement.
j'aurais pu utiliser une procédure stockée, mais je ne maîtrise pas bien
encore.
Pour faire des mise à jours multi-table, les procédures sont indispensables
pour reduire le temps de verrouillage durant les trnsactions de bases de
données qui sont obligatoires dans ce cas de figure.
j'ai trouvé la solution :
j'enregistre non pas dans la vue, mais directement dans les tables
concernées les modifications apportées à la vue : la "table centrale "
c'est
facile et pour toutes les données périphériques, connaissant l'id de
l'enreg
en cour, je modifie par un appel SQL distinct les tables en liaison.
un peu lourd, mais cela fonctionne.
Très dangereux en environnement concurrent sans l'utilisation de transaction
et pas optimal d'un point de vue performance. Une table indexée serait bien
plus performante.
merci en tout cas pour ce rappel important.
cordialement
JPGR
mais cela semble s'appliquer plus spécialement a une relation mère/père & enfant : un enreg appelant moult enreg.
moi j'ai une table centrale contenant des liens vers une dizaine de tables périphériques contenant (ou pas ) des données images ou ntext. donc un enreg a des liens vers 10 enreg uniques dans 10 tables différentes (tables liens images, table descriptifs, table explication,etc...)
Maître/détail marche même quand l'arité et de 0 ou 1 entre le maître et ces détails.
J'aurais pu les inclure directement dans ma "table centrale " mais celle
ci
serait devenu trop grosse, et souvent pour rien (pas tous les enreg ont
des
données gourmandes liées).
Faire des jointures pour récupérer les données, c'est pire que d'avoir une grosse table car les index sur cette table permettront d'avoir des performances très peu liées à la taille des données plutôt qu'au nombre d'enregistrement.
j'aurais pu utiliser une procédure stockée, mais je ne maîtrise pas bien encore.
Pour faire des mise à jours multi-table, les procédures sont indispensables pour reduire le temps de verrouillage durant les trnsactions de bases de données qui sont obligatoires dans ce cas de figure.
j'ai trouvé la solution : j'enregistre non pas dans la vue, mais directement dans les tables concernées les modifications apportées à la vue : la "table centrale "
c'est
facile et pour toutes les données périphériques, connaissant l'id de
l'enreg
en cour, je modifie par un appel SQL distinct les tables en liaison. un peu lourd, mais cela fonctionne.
Très dangereux en environnement concurrent sans l'utilisation de transaction et pas optimal d'un point de vue performance. Une table indexée serait bien plus performante.
merci en tout cas pour ce rappel important. cordialement JPGR