You will notice that Joe works at a rather well known university too.  :-)  I'd 
listen to his advice or decide to not use WO.

Chuck

On Apr 13, 2011, at 8:00 AM, Joe Little wrote:

> Others will say similarly, but as someone who once used views, etc, you'll 
> want to avoid these and stored procedures and build out all of this logic in 
> EOF/Modeler and let WebObjects do it's thing. If you are executing SQL for 
> results lists, you are likely trying too hard to outthink WO
> 
> On Apr 12, 2011, at 11:46 PM, naneon.raym...@neuf.fr wrote:
> 
>> Hi Chuck,
>> 
>> thanks for your reply. So I thought about stored procedures? But How I 
>> include in my code and can I cast resultset in EOEntities Objects?
>> I want to use data in my WOPopUpButton.
>> 
>> Thanks
>> 
>> Ray
>> 
>> 
>> ========================================
>> 
>> Message du : 12/04/2011
>> De : "Chuck Hill " <ch...@global-village.net>
>> A : naneon.raym...@neuf.fr
>> Copie à : webobjects-dev@lists.apple.com
>> Sujet : Re: fetching on joined table
>> 
>> 
>> Hi Ray,
>> 
>> WebObjects is not going to generate SQL like that for you (maybe it is 
>> possible, but it would be very difficult).  I think  that you have two 
>> choices:
>> 
>> 1. Use views
>> 2. Think and fetch in terms of Objects not tables and rows and joins.  This 
>> is going to be VERY different than how you are approaching the data now.
>> 
>> It is possible that WebObjects is just not a good thing to use with your 
>> schema.
>> 
>> 
>> Chuck
>> 
>> 
>> 
>> On Apr 12, 2011, at 12:49 AM, <naneon.raym...@neuf.fr> 
>> <naneon.raym...@neuf.fr> wrote:
>> 
>>> Hi chuck,
>>> 
>>> I go to give you more informations about data. I work in IT Universtity in 
>>> France and we have huge database with lot of table. Here is an example of 
>>> PDM (5 tables)
>>> 
>>> person 
>>> ------------>students--------->degree---------->diploma---------->academic 
>>> year------>period_param----------------------------->admin_resgistration
>>>                                (fk_person)        (fk_student)      
>>> (fk_academic_year)     (pk an_univ prd_univ)    (fields an_univ_prd_univ)   
>>>  (fk_diploma, fk_person, fk_student, fk_academic_year)
>>> 
>>> 
>>> and I have lof view (view_student_course on a period ...),
>>>  Here is code of view vue_parcours_profil using to have student curse :
>>> 
>>> CREATE OR REPLACE FORCE VIEW "GEST_UV"."VUE_PROFIL_PARCOURS" ("ETU_ID", 
>>> "DIPLOME_$C", "REORIENT_$F", "PRD_DEBUT", "PRD_FIN")
>>> AS
>>>   SELECT DISTINCT t3.e,
>>>     t3.d,
>>>     t3.reorient_$f,
>>>     MIN(p_deb) over (partition BY t3.e, t3.d, t3.p_fin) debut,
>>>     t3.p_fin fin
>>>   FROM
>>>     (SELECT DISTINCT t1.e,
>>>       t1.d,
>>>       t1.no,
>>>       t1.p p_deb,
>>>       NVL(MIN(t2.p) over (partition BY t1.e, t1.d, t1.no), MAX (t1.p) over 
>>> (partition BY t1.e, t1.d)) p_fin,
>>>       CASE
>>>         WHEN t1.no = 1
>>>         AND t2.r  IS NULL
>>>         THEN t1.r
>>>         ELSE DECODE(t2.r,NULL,'N',t2.r)
>>>       END reorient_$f
>>>       --DECODE(t2.r,null,'N',t2.r) reorient_$f
>>>     FROM
>>>       (SELECT DISTINCT etu_id e,
>>>         diplome_$c d,
>>>         an_univ
>>>          prd_univ p,
>>>         ROW_NUMBER() OVER (partition BY etu_id,diplome_$c order by an_univ
>>>          prd_univ NULLS LAST) no,
>>>         DECODE(res_pedag_$c,'RE','O','DR','O','N') r
>>>       FROM gerry.etu_inscr_adm eia1
>>>       ) t1,
>>>       (SELECT DISTINCT etu_id e,
>>>         diplome_$c d,
>>>         an_univ
>>>          prd_univ p,
>>>         ROW_NUMBER() OVER (partition BY etu_id,diplome_$c order by an_univ
>>>          prd_univ NULLS LAST) no,
>>>         DECODE(res_pedag_$c,'RE','O','DR','O','N') r
>>>       FROM gerry.etu_inscr_adm eia2
>>>       ) t2
>>>     WHERE t1.e = t2.e(+)
>>>     AND t1.d   = t2.d(+)
>>>     AND t1.no  < t2.no(+)
>>>     AND t1.r  <> t2.r(+)
>>>       --and t1.r = 'N'
>>>     AND ((t1.no        = 1
>>>     AND NVL(t1.r,'N') IN ('O','N'))
>>>     OR (t1.no          > 1
>>>     AND NVL(t1.r,'N')  = 'N'))
>>>     ) t3;
>>> 
>>> So when I want all students curse in sql developer this my request :
>>> 
>>> SELECT vtp.etu_id as STUDENT_ID,
>>>     vtp.diplome_$c as DIPLOMA_CODE,
>>>     DECODE (vtp.diplome_$c,'ING',d.diplome
>>>      ' ancien règlement',d.diplome) as DIPLOMA_NAME,
>>>     vtp.prd_debut as PERIOD_BEGIN,
>>>     vtp.prd_fin as PERIOD_END,
>>>     gerry.fonc_trad_prd_lib(vtp.prd_debut,'anprd') as ACADEMIC_YEAR_BEGIN,
>>>     gerry.fonc_trad_prd_lib(vtp.prd_fin,'anprd') ACADEMIC_YEAR_END,
>>>     vtp.reorient_$f as ORIENTATION,
>>>     (SELECT DIPL_SPEC_ABR
>>>        ' '
>>>        DIPL_OPT_ABR
>>>        ' '
>>>        NIVEAU_ADM
>>>     FROM gerry.vue_eia_abr veia
>>>     WHERE veia.etu_id  = vtp.etu_id
>>>     AND veia.diplome_$c=vtp.diplome_$c
>>>     AND veia.an_univ
>>>        veia.prd_univ=vtp.prd_fin
>>>     ) as DIPLOMA_SPECIFICITY,
>>>     (SELECT diplome_num
>>>     FROM gest_uv.etu_diplome
>>>     WHERE etu_id   = vtp.etu_id
>>>     AND diplome_$c = vtp.diplome_$c
>>>     AND an_univ
>>>        prd_univ BETWEEN vtp.prd_debut AND vtp.prd_fin
>>>     ) as DIPLOMA_NUMBER,
>>>     (SELECT SITUATION
>>>     FROM gerry.etu_inscr_adm eia,
>>>       gerry.ref_situation rs
>>>     WHERE rs.situation_$c = eia.situation_$c
>>>     AND eia.etu_id        = vtp.etu_id
>>>     AND eia.diplome_$c    =vtp.diplome_$c
>>>     AND eia.an_univ
>>>        eia.prd_univ=vtp.prd_fin
>>>     ) as STUDENT_SITUATION,
>>>     NVL(
>>>     (SELECT DECODE(situation_$c,'DEMI','O','N')
>>>     FROM gerry.etu_inscr_adm
>>>     WHERE etu_id    = vtp.etu_id
>>>     AND diplome_$c  =vtp.diplome_$c
>>>     AND situation_$c='DEMI'
>>>     AND an_univ
>>>        prd_univ=vtp.prd_fin
>>>     ),'N') as IS_STUDENT_RESIGNED,
>>>     NVL(
>>>     (SELECT DECODE(situation_$c,'UTX','O','N')
>>>     FROM gerry.etu_inscr_adm
>>>     WHERE etu_id    = vtp.etu_id
>>>     AND diplome_$c  =vtp.diplome_$c
>>>     AND situation_$c='UTX'
>>>     AND an_univ
>>>        prd_univ=vtp.prd_fin
>>>     ),'N') as IS_STUDENT_TRANSFERED
>>>   FROM gest_uv.VUE_PROFIL_PARCOURS vtp,
>>>     gerry.diplome d
>>>   WHERE vtp.diplome_$c = d.diplome_$c
>>> order by prd_debut, prd_fin;
>>> 
>>> So I must fetch on view vue_profil_parcours, diploma to display all 
>>> students curse in a WOO table using batch. Here a little example and I have 
>>> lof of fecthing such as this to do in my apps to display information about, 
>>> sutdent, teacher so on...
>>> 
>>> I want a example code How to translate this sql request  or what the best 
>>> practice in WebObjects in this situation? To fast forward in my apps, I 
>>> create view every time when I want to display this kind of information. 
>>> This allows me to browse my data in an accurate in WebObjects.
>>> 
>>> Thanks for your help
>>> 
>>> Ray,
>>> 
>>> 
>>> Message du : 11/04/2011
>>> De : "Chuck Hill " <ch...@global-village.net>
>>> A : naneon.raym...@neuf.fr
>>> Copie à : webobjects-dev@lists.apple.com
>>> Sujet : Re: fetching on joined table
>>> 
>>> 
>>> 
>>> On Apr 11, 2011, at 3:12 AM, <naneon.raym...@neuf.fr> wrote:
>>> 
>>>> Hi Chuck,
>>>> 
>>>> Tables A, B, C, D haven't relationship but same fileds name.
>>> 
>>> If they don't have modeled relationships, then you can't use qualifiers.
>>> 
>>> 
>>>> When i'am using raw rows to translate my sql in webobjects and get my 
>>>> data, I don't have EOF entities but dictionnaries.
>>>> 
>>>> So I would like to know what the best practice on my case? create view 
>>>> with my sql request on database and fetching on view  in my model?
>>> 
>>> I think the best practice would be to change the model (and the schema too, 
>>> if needed) so that there are relationships and you are fetching entities.  
>>> I very rarely need to do a raw row fetch.  If you give us more information 
>>> on the data, maybe we can suggest a better model.
>>> 
>>> 
>>> 
>>> Chuck
>>> 
>>> 
>>>> ========================================
>>>> 
>>>> Message du : 11/04/2011
>>>> De : "Chuck Hill " <ch...@global-village.net>
>>>> A : naneon.raym...@neuf.fr
>>>> Copie à : webobjects-dev@lists.apple.com
>>>> Sujet : Re: fetching on joined table
>>>> 
>>>> 
>>>> Hello Ray,
>>>> 
>>>> 
>>>> On Apr 8, 2011, at 5:16 PM, naneon.raym...@neuf.fr wrote:
>>>> 
>>>>> Hi, 
>>>>> 
>>>>> I'm newbie on WebObjects and I have big problem to fetching on joined 
>>>>> table.
>>>>> Example :
>>>>> I have my SQL like that :
>>>> 
>>>> A good rule with WebObjects is "If you are thinking about SQL, you are 
>>>> doing it wrong."  There are times (i.e. when optimizing) when you do need 
>>>> to think about the SQL, but thinking in terms of objects is usually the 
>>>> better way.
>>>> 
>>>>> 
>>>>> select 
>>>>> a.id b.id as ID,
>>>>> c.option as option,
>>>>> decode(d.no, 1, 'one', 2, 'two', 'unknow') as  order
>>>> 
>>>> WebObjects (EOF) does not do mixed table selects like this (unless you are 
>>>> selecting Raw Rows).  It selects whole rows of tables and makes them into 
>>>> related Java objects.
>>>> 
>>>> 
>>>>> from
>>>>> ta a, tb b, tc c, td d
>>>>> where
>>>>> c.option in ('1', '2','3')
>>>>> and c.option = b.option
>>>>> 
>>>>> How to translate this SQL request in EOF using qualifier or spec 
>>>>> qualifier?
>>>>> 
>>>>> Thanks for your help.
>>>> 
>>>> What are the relationships in the model between A, B, C, and D?  What are 
>>>> you trying to fetch?
>>>> 
>>>> 
>>>> Chuck
>>>> 
>>>> -- 
>>>> Chuck Hill             Senior Consultant / VP Development
>>>> 
>>>> Practical WebObjects - for developers who want to increase their overall 
>>>> knowledge of WebObjects or who are trying to solve specific problems.    
>>>> http://www.global-village.net/products/practical_webobjects
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>> 
>>> -- 
>>> Chuck Hill             Senior Consultant / VP Development
>>> 
>>> Practical WebObjects - for developers who want to increase their overall 
>>> knowledge of WebObjects or who are trying to solve specific problems.    
>>> http://www.global-village.net/products/practical_webobjects
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>> 
>> -- 
>> Chuck Hill             Senior Consultant / VP Development
>> 
>> Practical WebObjects - for developers who want to increase their overall 
>> knowledge of WebObjects or who are trying to solve specific problems.    
>> http://www.global-village.net/products/practical_webobjects
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>> Help/Unsubscribe/Update your Subscription:
>> http://lists.apple.com/mailman/options/webobjects-dev/jmlittle%40gmail.com
>> 
>> This email sent to jmlit...@gmail.com

-- 
Chuck Hill             Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their overall 
knowledge of WebObjects or who are trying to solve specific problems.    
http://www.global-village.net/products/practical_webobjects







Attachment: smime.p7s
Description: S/MIME cryptographic signature

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to