Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] [Bug] foreigntable et savetodao

Posted by leodc on 08/27/2008 10:09

Salut à tous,

j'aurais deux petites questions:

D'abords à propos des foreigntables dans les daos, en effet, lorsque l'on indique une clé étrangère dans une dao avec foreigntable et ensuite le champ de la clé étrangère, si lors de la saisie de l'enregistrement, on remplit bien ce champ, l'enregistrement est bien affiché. Cependant si le champ clé étrangère n'est pas saisi, c'est à dire mis à null, l'enregistrement n'est pas retourné par la fonction findAll()

Voici la requête...

 [lastQuery] => SELECT "particulier"."id_particulier", "particulier"."id_commune", "commune"."nom_commune", 

...

 FROM "particulier" AS "particulier", "commune" AS "commune" WHERE  "particulier"."id_commune"="commune"."id_commune"

Est-ce normal? Je précise que j'ai fait le test avec plusieurs tables et j'ai le même problème à chaque fois...

Seconde question: J'ai vu que la méthode saveToDao doit retourné l'id de l'enregistrement ajouté (dans le cas d'une insertion) or apparement elle me retourne un booléen comme quoi il a bien été ajouté, est-ce normal? ou est ce que cela viendrai du fait que l'id est un autoincrémenté?


Nicolas Rion

SAS Géosphère
1 Impasse champeau
21800 Quétigny

  [Opened] Re: foreigntable et savetodao

Reply #1 Posted by laurentj on 08/27/2008 10:34

Salut,

Cependant si le champ clé étrangère n'est pas saisi, c'est à dire mis à null

Euh... c'est à toi de vérifier ce que l'utilisateur saisi quand même. Jelix peut tout de même pas deviner tes rêgles de gestion. Tu fait un check sur le record avant de l'enregistrer au moins ? Et pour le formulaire, tu utilises jforms ou pas ?

foreigntable, c'est pour les jointures "normales" (inner join). Si ta jointure doit être une jointure externe (left join), et donc avec une valeur de clé étrangère facultative, c'est optionalforeigntable qu'il faut utiliser.

Donc, oui, avec ce que tu as écris dans ta dao, le comportement est normal. Ou alors je n'ai absolument pas compris ton problème. Ou alors c'est toi qui n'a pas correctement écrit ta dao (ou ton fichier jforms si tu utilises jforms)

J'ai vu que la méthode saveToDao doit retourné l'id de l'enregistrement ajouté (dans le cas d'une insertion) or apparement elle me retourne un booléen comme quoi il a bien été ajouté, est-ce normal? ou est ce que cela viendrai du fait que l'id est un autoincrémenté?

non c'est pas normal. Mais as tu defini des clés primaires dans ta dao ? Ça manque de code source ton message ;-)

  [Opened] Re: foreigntable et savetodao

Reply #2 Posted by laurentj on 08/27/2008 12:25

Ainsi si j'execute la méthode saveToDao sur cette dao, elle me retourne 1...

et dans la table, l'id vaut combien ?

  [Opened] Re: foreigntable et savetodao

Reply #3 Posted by leodc on 08/27/2008 17:02

en fait en faisant un var_dump de la méthode saveToDao, j'obtiens:

bool(true)


Nicolas Rion

SAS Géosphère
1 Impasse champeau
21800 Quétigny

 
Page
  1. Re: foreigntable et savetodao