PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 2024 → Erreur d'intégrité
Erreur d'intégrité
Iniciado por vin.janssens, ago., 15 2003 7:27 PM - 4 respostas
Publicado em agosto, 15 2003 - 7:27 PM
Salut à tous,

J'ai une page commande sur laquelle j'utilise les fonction Hajoute() pour
insérer un nouvel enregistrement.
Le hic c'est qu'avant d'insérer mon enregistrement dans le fichier commande,
je dois dabord créer un client,
un acompte, une ligne de commande,etc...Une foi ces enregistrements insérés,
je récupère les ID pour les
insérer dans mon fichier commande et je me retrouve avec une erreur
d'intégrité.
Là ou çà se corse, c'est que si j'insère directement les données via
l'éditeur de requète, je n'ai aucune erreur ???
On dirait que le Hajoute() n'applique pas un commit sur le fichier et que
lorsque je veux insérer un enregistrement dans commande avec les
clés étrangère des fichiers clients, acompte, ligne de commande...il
considère que ces enregistrements n'existent pas encore et
me renvois forcément un problème d'intégrité...
Je précise que je réalise toutes ces opérations dans la même page (création
du client, acompte, ligne de commande et puis commande)
J'utilise également le pageversfichier avant le Hajoute(), et ce une seule
foi avant tous les traitements.

Vous auriez pas une idée de ce dont il pourrait s'agir ?

Merci à vous

Vincent
Publicado em agosto, 18 2003 - 7:50 PM
Salut,
tu devrais peut etre spécifier les fichiers sur lesquels tu veux faire le
rajout, en commencant avec le bon!
HAJOUTE(CLIENT)
HAJOUTE(ACCOMPTE)
HAJOUTE(COMMANDE)
....
Sinon il risque de commencer par le dernier et là il y a effectivement une
erreur d'integrite (commande sans client!)
Espèrant t'avoir aidé,
A+
"Vincent Janssens" <vin.janssens@skynet.be> wrote:
Salut à tous,

J'ai une page commande sur laquelle j'utilise les fonction Hajoute() pour
insérer un nouvel enregistrement.
Le hic c'est qu'avant d'insérer mon enregistrement dans le fichier commande,
je dois dabord créer un client,
un acompte, une ligne de commande,etc...Une foi ces enregistrements insérés,
je récupère les ID pour les
insérer dans mon fichier commande et je me retrouve avec une erreur
d'intégrité.
Là ou çà se corse, c'est que si j'insère directement les données via
l'éditeur de requète, je n'ai aucune erreur ???
On dirait que le Hajoute() n'applique pas un commit sur le fichier et que
lorsque je veux insérer un enregistrement dans commande avec les
clés étrangère des fichiers clients, acompte, ligne de commande...il
considère que ces enregistrements n'existent pas encore et
me renvois forcément un problème d'intégrité...
Je précise que je réalise toutes ces opérations dans la même page (création
du client, acompte, ligne de commande et puis commande)
J'utilise également le pageversfichier avant le Hajoute(), et ce une seule
foi avant tous les traitements.

Vous auriez pas une idée de ce dont il pourrait s'agir ?

Merci à vous

Vincent


Publicado em agosto, 18 2003 - 11:01 PM
"Christian" <cciochir@cmii.fr> wrote in message news:3f4103e0$1@news....

tu devrais peut etre spécifier les fichiers sur lesquels tu veux faire le
rajout, en commencant avec le bon!
HAJOUTE(CLIENT)
HAJOUTE(ACCOMPTE)
HAJOUTE(COMMANDE)
Sinon il risque de commencer par le dernier et là il y a effectivement une
erreur d'integrite (commande sans client!)
Espèrant t'avoir aidé,


Tout dabord merci pour l'info
Ben en fait c'est ce que je fait, j'ai bien vérifié les liens entre mes
fichiers commandes,
clients, acompte et en changeant mes lien de sorte qu'il ne me pose pas
d'erreur d'intégrité
(en changeant la cardianlité 1,1 de commande en 0,1), il me crée bien ma
commande mais avec
les ID pour client et acompte à 0...???
Dans ma page, faut-il nécessairement disposer des 2 champs correspondant aux
ID, çàd
le champ CLIENT_ID de client et celui de commande car c'est ce que j'ai en
ce moment
et commence à me poser des questions...
J'utilise également un transactiondebut() et transactionfin() qui englobe ma
portion de code ou je
remplis les enregistrements...

A part çà je vois pas pourquoi çà fonctionne pas...

Merci à vous

A+

Vincent
Publicado em agosto, 19 2003 - 10:28 AM
Slt Vincent

Peux-tu nous montrer un bout de code épuré ne contenant que les commandes
wlangage STP ?

Alain V

"Vincent Janssens" <vin.janssens@skynet.be> a écrit dans le message de news:
3f412d01$1@news....
"Christian" <cciochir@cmii.fr> wrote in message news:3f4103e0$1@news....

tu devrais peut etre spécifier les fichiers sur lesquels tu veux faire

le
rajout, en commencant avec le bon!
HAJOUTE(CLIENT)
HAJOUTE(ACCOMPTE)
HAJOUTE(COMMANDE)
Sinon il risque de commencer par le dernier et là il y a effectivement

une
erreur d'integrite (commande sans client!)
Espèrant t'avoir aidé,

Tout dabord merci pour l'info
Ben en fait c'est ce que je fait, j'ai bien vérifié les liens entre mes
fichiers commandes,
clients, acompte et en changeant mes lien de sorte qu'il ne me pose pas
d'erreur d'intégrité
(en changeant la cardianlité 1,1 de commande en 0,1), il me crée bien ma
commande mais avec
les ID pour client et acompte à 0...???
Dans ma page, faut-il nécessairement disposer des 2 champs correspondant

aux
ID, çàd
le champ CLIENT_ID de client et celui de commande car c'est ce que j'ai en
ce moment
et commence à me poser des questions...
J'utilise également un transactiondebut() et transactionfin() qui englobe

ma
portion de code ou je
remplis les enregistrements...

A part çà je vois pas pourquoi çà fonctionne pas...

Merci à vous

A+

Vincent




Publicado em agosto, 20 2003 - 12:02 PM
Tout dabor, merci pour vos réponses

Je viens finalement de trouver une solution ou on pourrait dire la solution
à mon problème, je vous explique:

Ce qui se passait en fait, c'est que j'utilisais dans ma page, les champs
Acompte_id et client_id provenant
tantôt de commande, tantôt de leur fichier respectif (acomptes, clients).
En effet, comme je fait habituellement, j'avais fait un drag and drop de ces
champs directement à partir
de la liste des fichiers (en bas à gauche) et apparement, le fait d'avoir
sur ma page les deux même
champs en fait (car il portait le même nom chacun, que ce soit celui
pointant sur commande ou sur accompte et client)
provoquait cette erreur: apparemment Webdev s'en mêle les pinceaux lorsqu'on
retrouve sur la même page
deux champs pointant sur des fichiers différents mais ayant le même nom et
comme il le permet et ne donne aucune info
aux risques que cela pourrait engendrer, je considère qu'il s'agit d'un bug
de Webdev. (je travaille toujours sur la 1.5
en fait).
Ma solution a été tout simplement de créer 4 nouveaux champs avec des noms
distincts pointant sur les fichiers respectifs
et plus de problème du tout...Vous allez certainement me dire que c'est
logique mais pour un débutant en webdev comme
moi et malgré quelques années de programmation dans divers languages, je
dois avouer là, que j'ai séché...;-)

Encore merci

A+

Vincent