[Firebird-fr-support] =?iso-8859-1?q?suppression_-_affichage=2E?= =?iso-8859-1?q?=2E=2E_probl=E8me_
Brought to you by:
makowski
From: <fra...@se...> - 2006-11-22 08:39:40
|
Bonjour, J'utilise une base de donn=E9e firebird 1.5.2 et j'ai un petit probleme=20 presque amusant mais assez emb=EAtant lors de la suppression=20 d'enregistrements... Je peux faire des insertions dans la BD de deux mani=E8res.=20 A partir du programme principal ou d'un module qui permet de g=E9rer le=20 contenu de la BD.=20 L'affichage des clients et des produits associ=E9s se fait donc dans le=20 module, =E0 partir duquel on peut cr=E9er, modifier ou supprimer de nouveau= x=20 clients. Situation ordinaire pour une BD!! Depuis le programme principal, il est =E9galement possible d'ins=E9rer un=20 nouveau client.... Mais ce sont surtout des enregistrements concernant=20 l'association entre les clients et les produits achet=E9s qui sont ins=E9r= =E9s=20 dans la BD =E0 ce niveau. Mon probl=E8me est le suivant: Lorsque je surpprime un client depuis ce module deux cas sont possible: 1. le client a =E9t=E9 ins=E9r=E9 depuis le module (interface graph= ique). =20 2. le client a =E9t=E9 ins=E9r=E9 depuis le programme principal.=20 lorsque je supprime un client du cas 1 il n'y a pas de probl=E8me,=20 l'enregistrement est supprim=E9 et tout va bien, je peux recommencer et=20 supprimer tous les enregistrements ins=E9r=E9s de cette mani=E8re sans le=20 moindre probl=E8me. Lorsque je supprime un enregistrement qui a =E9t=E9 ins=E9r=E9 suivant le c= as 2,=20 si cet enregistrement n'est pas le seul =E0 avoir =E9t=E9 ins=E9r=E9 par la= m=E9thode=20 du point 2, alors tout va bien aussi.=20 Mais lorsqu'on arrive au dernier enregistrement ins=E9r=E9 suivant la m=E9t= hode=20 du point 2, m=EAme s'il reste des enregistrements ins=E9r=E9s par la m=E9th= ode du=20 point 1, ils ne veulent plus s'afficher dans la datagrid lorsque apr=E8s la= =20 suppression du dernier enregistrement de type point 2 je r=E9ex=E9cute le=20 select ad=E9quat pour afficher les donn=E9es dans la datagrid.=20 Et je pr=E9cise bien que les enregistrements qui ne veulent plus s'afficher= =20 se trouvent TOUJOURS dans la base de donn=E9e. Ils se r=E9afficheront=20 uniquement lorsqu'un nouvel enregistrement de type point 2 aura =E9t=E9=20 effectu=E9. En effet d=E8s qu'un enregistrement aura =E9t=E9 effectu=E9 dep= uis le=20 programme principal, tout les enregistrements qui avaient disparu seront=20 de nouveau s=E9lectionn=E9 et affich=E9. BIZZARE non!? COMPOSANTS utilis=E9s: Du cot=E9 du programe principal, j'utilise un TIBDataBase et une=20 TIBTransaction et un TIBQuery pour effectuer les insertions lorsqu'il le=20 faut. Du cot=E9 du module, j'utilise =E9galement un TIBDataBase et une=20 TIBTransaction, des TIBQuery pour l'ajout, la modification, suppression et = un TIBDataSource pour lier les donn=E9es =E0 un TIBDataGrid et d'autres=20 contr=F4les. Je pr=E9cise encore que les valeurs des propri=E9t=E9s de chaques TIBDataBa= se et=20 TIBTransaction d'un c=F4t=E9 ou de l'autre sont pareilles. des commits sont mis en oeuvres lors des op=E9rations d'insertion,=20 suppression et modifications... Je me demande =E0 quel niveau ce situe le probl=E8me:=20 =20 1. Le fait d'utiliser un fichier base de donn=E9e avec deux=20 composants database,=20 2. mauvaise utilisation des transactions, 3. mauvaise utilisation des TibQuery, 4. mauvaise configuration des propri=E9t=E9s du DataSource 5. ou encore mauvaise configuration des propri=E9t=E9s de la=20 TIBDataGrid.....!!!!????? Si qqun =E0 tenu le coup jusqu'au bout en lisant mon message et qu'en plus = il aurait une solution, ou une autre id=E9e pouvant faire avancer le=20 schmilblick, son aide sera la bienvenue... |