N @?csPkZkZkZkZkZkZkZdfdYZdS(ssqlwebfunctionscsMdZ dZ%dZ4dZ\dZdZRS(Ncsd|_dSdS(Ns1.18(sselfs maversion(sselfs&E:\site\munster\cgi\sqlwebfunctions.pys__init__s cs "|iSdS(N(sselfs maversion(sselfs&E:\site\munster\cgi\sqlwebfunctions.pysversion scs%)d}*d}+d},xc,|t|jo |djo?-ti|||d jo .d}n/|d}q$W0|SdS(Nis 0123456789i(sokschrefsislenslenombsstringsfind(sselfslenombsokschrefsis&E:\site\munster\cgi\sqlwebfunctions.pys isnumeric%s   #! c s|49d}:dddddddddddddf }=ti|ddjo >d}n Ati|d}C|i|ddjp1|i|ddjp|i|ddjo Dd}nEt|ddjpt|ddjo Fd}n\Ht|ddjo Id}n5Kt|ddjoOt|dd djo/t|dd djot|dd jo Qd}nRt|dd djo/t|dd djot|dd jo Sd}n(Tt|ddjo Ud}nn6Vt|d|t|djo Wd}nX|SdS( Niiiiis/ii idii( sokstablomaxsstringscountsladatessplitsselfs isnumericsint(sselfsladatesokstablomaxs&E:\site\munster\cgi\sqlwebfunctions.pysisdate4s* 0 Q 1  P P ( cs\\i|d}j|d}k|d}l|d}ntititi}qx|i dqr}r|d djos|d}ud}vd} wd} xd} yt|d} zx|i dzr} {| d| jo:||| djo|| tjo}|| }nn~| d | jo:|| djo|| tjo|| } nnqW||d jo d}n d}d} |djp |tjo| djp | tjo d}n|id | |i}d }|o|d } |ddjo d}n d}| djod}|djp |tjol|i|djo d}nCti|d}d|dd|dd|dd}n| djo | tjol|i| djo d} nCti| d} d| dd| dd| dd} nn/| djp | djod}|djo |tjo*|i|djo d}nn| djo | tjo*|i| djo d} nnnw|djo |tjod|d}n| djo | tjod| d} nd}d} |djo |tjo| djo | tjo3dt|d|d|d| d} n|djp |tjo| djo | tjo+dt|d|d| d} nl| djp | tjo|djo |tjo+dt|d|d|d} n d} n| djp |djo|djod|dt|dt|ddt|d }|dt|d!|dd"t|d#||| d}nsd|dt|d$t|d }|dt|d!|dd"t|d#||| d}n|d}nqdW||||f}|SdS(%NiiiiisselCri_ssvalMin_svalMax_s0sQselect typedevaleur, qualitatif from leinetcriteres where leinetcriteres.critere=svaleurs typedevaleurs qualitatifs valeurdates/s#is valeurnums's and (as.[s ] between s and s)s] <= s] >= s(s+ left join [leinetcriteresdesproduits] as as on as .produit = as .produit)s .[critere]=s and as .modalite=s on leinetproduits.produit = a( sentreesqss cmptsuiteslefromslewheresSQLWebs parametresmachinesbasesleidbskeyssksvalminsvalmaxswhere_val_listprodstypevalsstrslecrislsNonesestquantitatifs val_listprods selectsqlsfetchsqlses lechampvalsselfsisdatesstringssplits isnumericssortie(sselfsentreesqss cmptsuiteslefromslewheresleidbsksvalminsvalmaxswhere_val_listprodstypevalslecrislsestquantitatifs val_listprodses lechampvalssorties&E:\site\munster\cgi\sqlwebfunctions.pys traitecfCrit\s           %%   7        1 5   737+7+ ?I-IcP sIti}tititi}xl|idrY}t |djo(t i t ||d||| djp1| djp$| djp| djp | djod} d }d!}d"}| djod"}d#}|i d$o|d$djod}d"}| d%|d&|d'} | djo"|d(|d)|}n"$|d(|d*|d$d+}n&d|d$o|d>djo]d}^|d>}_t/|dd6!}`t/|d?d@!}a|dAjobd}c|d}ne|d}f|}gt |dBt |}ht |dBt |} i|dC| dD|dE}nkd|d><m|i dFo|dFdjon|dG|dH|}npd|dF<r|i dIo|dIdjos|dG|dJ|}nud|dI<x|i dKo|dKdjo@yt i t i6|dK}!z|dL|dM|!dN}n|d|dK<~|i dOo|dOdjo@t i t i6|dO}!|dL|dP|!dQ}nd|dO<|i dRo|dRdjo+|dS|}| dT} d}nd|dR<|i dUo|dUdjo+|dV|}| dT} d}nd|dU<|i dWo|dWdjo+|dX|}| dY} d}nd|dW<|i dZo|dZdjo+|d[|}| dY} d}nd|dZ<|i d\o|d\djo"|d]|}| d^} nd|d\<|i d_o|d_djo"|d`|}| d^} nd|d_<da|db|dc}"|djo%dd|de|df|dc}"ndg|"}"| djp | djo"dh|di}#dj| } dk}$|#|"|| ||$}%|i<|%|i=}|i>}&| djo| o>|i@i dlo$|idl|idmnnz|idnxC|o8|&iA||iBdo|&GH|i=}q W|idp|idqn| djo| o>|i@i dro$|idr|idsnnz|idtxC|o8|&iA||iBdu|&GH|i=}q W|idv|idwnn| djp | djo1dh|dx}#dy| } dz}$|#|"|| ||$}%|i<|%|i=}|i>}&| djo| o>|i@i d{o$|id{|id|nnz|id}xC|o8|&iA||iBd~|&GH|i=}qW|id|idn| djo | o> |i@i do$ |id|idnn|i>}&|idxC|o8|&iA||iBd|&GH|i=}qW|id|idnn| djp | djo"dh|d}#d| } d}$ |#|"|| ||$}%#|i<|%$|i=}%|i>}&&| djo(| o>)|i@i do$*|id+|idnnz-|id.xC.|o82|&iA|3|iBd|&GH4|i=}qVW5|id6|idn8| djo@| o>A|i@i do$B|idC|idnnzE|idFxCF|o8J|&iA|K|iBd|&GHL|i=}q,WM|idN|idnnP| djo;Qd|d}#Rd|d| } Sd|d}$T|#|"|| ||$}%Ut i |%}%W|i<|%X|i=}Y| o>Z|i@i do$[|id\|idnnj_|id`x3`|o(e|iBd|GHf|i=}qWi|idj|idnl| djom|djond|de|d}'n p|}'r|djo5tdd|'d|d|d|d|dc}"nvda|'db|dc}"{dg|"}"|d|d&|d|d|d|d|d}#}d|d&|d|d|d|d|d| } ~|dG|d|d}d}$|#|"|| ||$}%|i<|%|i=}d}(| o>|i@i do$|id|idnn9|i>}&|idd})d}*x*|o|)|djo|)djo |)tGjo|*djo|idn|*d6jp |*djoH|i@i do.|iBd|&GH|iBd|&GHnn|idn|&iA||iBd|&GH|ddjoH|i@i do.|iBd|&GH|iBd|&GHnnZ|i@i do.|iBd|&GH|iBd|&GHn|iBd|&GH|d})|d}*n>|&iA||ddjo|iBd|&GHnd}(|i=}qW|(djo|*djo.|i@i do|idnn|*d6jp |*djoH|i@i do.|iBd|&GH|iBd|&GHnn|idn|idnn| djpK| djp>| djp1| djp$| djp| djp | djod}+d}#d} d!}|}"d }|}$d},d}|i d-o|d-djoo|,d},d|"dt |,dt |,d}"|dt |,d|t |,d|}nd|d-<d|d2<|i do|ddjo_||,|"|f}-|iK|-}.|.d}|.d},|.d6}"|.d?}nd|d<|i do|ddjo@t i t i6|d}/|dL|d|/d}nd|d<|i dKo|dKdjo@t i t i6|dK}!|dL|dM|!d}nd|dK<|i dOo|dOdjo@t i t i6|dO}!|dL|dP|!dQ}nd|dO<|i d\o|d\djo|d|}nd|d\<|i d_o|d_djo|d|}n d|d_<|i dZo|dZdjo|d|}nd|dZ<|i dWo|dWdjo|d|}nd|dW<|i dUo|dUdjo|d|}d}nd|dU< |i dRo|dRdjo!|d|}"d}n$d|dR<'|i d4o|d4djo(d}+)d|}$+t i|d4d5},|dd5|dd5|d6}-|d7|d8}.|i d9o|d9djod0t i|d9d5}1|dd5|dd5|d6}2|d:|d;}3d|}$n5|d<}6d|d9|d=|d8}?d|}$nAd|d9<Bd|d4<D|i d>o|d>djoEd}+F|d>}Gt/|dd6!}Ht/|d?d@!}I|dAjoJd}K|d}nM|d}N|}Pt |dBt |}Qt |dBt |} R|dC| dD|dE}Sd|}$nUd|d><W|i dFo|dFdjoX|d|}nZd|dF<\|i dIo|dIdjo]|d|}n_d|dI<b|+djo7cd|"d|d}"d|#d}#e| d} nhd|"d}"k|djold|"d}"nn| djo.pd|$}$qd|#}#t|#dg|"||$}%y|i do |i do"z|i<|%|d|dn||i<|%~|i=}d}0| o>|i@i do$|id|idnnB|i>}&|idx|o|ddjod|d}&|2d|2d<|2d|2d<|2d|2d<|&iA|2| djo|2ddjoc|i@i do$|id|idn&|iBd|&GH|idn&|iBd|&GH|idn| djo|2ddjoc|i@i do$|id|idn&|iBd|&GH|idn&|iBd|&GH|idn| djo|2ddjoc|i@i do$|id|idn&|iBd|&GH|idn&|iBd|&GH|idn| djo|2ddjoc|i@i do$|id|idn&|iBd|&GH|idn&|iBd|&GH|idn| djo|2ddjoVdGH|id|idtii|itinc|i do|d}3n d}3|2d}0|i d od|djod}tSiTdtSiUtSiS}5tSiTdtSiUtSiS}6t/|5}7t/|6}8|id |i>}&!x!|dAjo"|7djo#dt |7d5}9n%t |7d5}9&|9t |8}9'h|9d><}2(|&iA|2)|iBd|&GH*|7dAjo+d}7,|8d}8n.|7d}7/|d}q+W0|id1|idn4| djo7d}#8d}"9d };|i do<|d|}n>|#dg|"|}%@|i<|%A|i=}M|dtGjoNd|d}#d?}"d }|i do|d|}n|#dg|"|}%|i<|%|i=}|d@djoMt i\|d@dAdB};t i|;dC}<d}=|idDx|<dr} | ddBjo|=o8t i`| |dE<|iBdF|GHd}=nBd|d<t i`| |dE<|iBdF|GHd}=n,| |d<|iBd|GHd}=q2W|id|idGnd}=|idHn| dIjodJ}#d?}"d }|i do|d|}n|#dg|"|}%|i<|%|i=}d}(|i dKopt i|dKd}>xM|>dr@}?|i |?o'd}=||?djo||?djo d}( t i\||?dAdB}; t i|;dC}<d}=dL|?}@dM|?}A|i|@x~|<drq} | ddBjo|=oot i`| |dE<|i@i dF|?o|iBdF|?|GHn!|iBdF|GH"d}=ny$d|d<%t i`| |dE<-|i@i dF|?o.|iBdF|?|GHn0|iBdF|GH1d}=nc3| |d<5|i@i d|?o6|iBd|?|GHn8|iBd|GH9d}=q]5Wnnq4Wn;|(djo=|i@i d|?o>|id|?n@|idB|i@i dG|?oC|idG|?nE|idGF|i|AnnK| dNjoxOdO|}%Q|i<|%R|i=}BT|BdPo|BdPdjo)Y|iBdQ|BGHZ|idRnn]| dSjo^dT|}%`|i<|%a|i=}b| o>c|i@i dUo$d|idUe|idVnng|idWhxXh|oMl|dtGjomd|dW|Hdjo"|Hd}}H||HdQ}n|d~}|#|"||$}%|i<|%|i=}d}Mx|o||M|djod|d<d|dW|id|idnq=W|idnw|i d$oit i|d$d}Lx6|Ldr)} dw|}|i d$o|d| dQ}n|#|"||$}% |i<|% |i=} d}M x |o||M|djod|d<d|ddu}"?dv}$Ad$t |}NBdt |}OCt i|Nd}LDx|LdDr} Fdw|}H|i |NoI|i |OoZJ||Odjo)K|d||Nd||Od+}nM|d||Nd3}nO|d||Nd3}nQ|#|"||$}%T|i<|%U|i=}Vd}MWd}(XxX|o\|M|djo`d|d}&|o}|idxC|o8|&iA||iBd|&GH|i=}qbEW|id|idn;|i@i do$|id|idnn| djp | djod}%|%d}%|%d|}%|i<|%|i=}|o;|i>}&|dtGjod|dsHs6version des logiciels web vbc installess s,
version de la librairie de fonctions : s
version du connecteur DB : ss erreur.sksbeginsJerreur : il faut donner un skelette destination : manque paramtre 'page'.sendisigns,sbouclesriens debutriensfinrienscntgscntcscnttsgscstscommscrss where 1=1 sleinetproduitssleinetsyntheseproduitssleinetsyntheseproduits_1s critselects , s .critere, s .modalite s and (s.critere in (%(critselect)s)) s .critere in (s))s having 1=1 s critfiltres and (((s .critere)=s) and ((s .modalite)=s modfiltres)) saus/is$ and not (([leinethoraires].[du] > #s#) sdus or ([leinethoraires].[au] < #s#)) s ) s" and not ([leinethoraires].[au] <#smoisiii s/01/s! and not (( leinethoraires.du >=#s#) or (leinethoraires.au <#s#))sdepts and s.dpt=%(dept)s s deptselects.dpt in (%(deptselect)s) svilles and lcase(s .[ville]) = 's' s villeselects.[ville]) in (s)s genreselects3 and (leinetcategories.genre in (%(genreselect)s)) s, leinetcategories.genresgenres- and (leinetcategories.genre in (%(genre)s))s catselects3 and (leinetcategories.categorie in (%(catselect)s)s, leinetcategories.categories categories5 and (leinetcategories.categorie in (%(categorie)s)) stypes0 and (leinettypesdeproduits.type in (%(type)s)) s, leinettypesdeproduits.types typeselects6 and (leinettypesdeproduits.type in (%(typeselect)s)) s` (leinetgenresdeproduits left join (leinetcategories left join (leinettypesdeproduits left join s! on leinettypesdeproduits.type = s.typedeproduit) on leinetcategories.categorie = leinettypesdeproduits.categorie1 or leinetcategories.categorie = leinettypesdeproduits.categorie2) on leinetgenresdeproduits.genre = leinetcategories.genre)sa (leinetgenresdeproduits left join (leinetcategories left join (leinettypesdeproduits left join (s left join leinethoraires on sC.produit = leinethoraires.produit) on leinettypesdeproduits.type = s from s select count(s.produit) as cntproduit, leinetgenresdeproduits.genre as cle , leinetgenresdeproduits.nomdugenre as lib, leinetgenresdeproduits.ordresg group by leinetgenresdeproduits.genre, leinetgenresdeproduits.nomdugenre, leinetgenresdeproduits.ordres+ order by leinetgenresdeproduits.nomdugenresdebutnoreponsecntgenresfinnoreponsecntgenres debutcntgenresdebutdetailcntgenresfindetailcntgenres fincntgenresdebutnoreponsegenresfinnoreponsegenres debutgenresdebutdetailgenresfindetailgenresfingenresb.produit) as cntproduit, leinetcategories.categorie, leinetcategories.nom, leinetcategories.genre sS group by leinetcategories.categorie, leinetcategories.nom, leinetcategories.genre s order by leinetcategories.nomsdebutnoreponsecntcategoriesfinnoreponsecntcategoriesdebutcntcategoriesdebutdetailcntcategoriesfindetailcntcategoriesfincntcategoriesdebutnoreponsecategoriesfinnoreponsecategoriesdebutcategoriesdebutdetailcategoriesfindetailcategories fincategories.produit) as cntproduit, leinettypesdeproduits.type, leinettypesdeproduits.nom, leinettypesdeproduits.categorie1, leinettypesdeproduits.categorie2, leinettypesdeproduits.tagd, leinettypesdeproduits.tagf s group by leinetcategories.categorie, leinettypesdeproduits.type, leinettypesdeproduits.nom, leinettypesdeproduits.categorie1, leinettypesdeproduits.categorie2, leinettypesdeproduits.tagd, leinettypesdeproduits.tagf s# order by leinettypesdeproduits.nomsdebutnoreponsecnttypesfinnoreponsecnttypes debutcnttypesdebutdetailcnttypesfindetailcnttypes fincnttypesdebutnoreponsetypesfinnoreponsetypes debuttypesdebutdetailtypes findetailtypesfintypesselect distinct s.ville s group by s order by s.villesdebutnoreponselistecommunesfinnoreponselistecommunesdebutlistecommunesdebutdetaillistecommunesfindetaillistecommunesfinlistecommunes(s".produit = leinethoraires.produit)s% left join leinetsyntheseproduits as s on s .produit = s*.produit) on leinettypesdeproduits.type = s.cri, s .modalite, s.moda, s .qualitatif, s .typedevaleurs.critere is not null and s.modalite is not nullsdebutnoreponsecriteresfinnoreponsecriteres debutcriterescriteresfindetailmodalites debutvaleurs finvaleursdebutdetailcriteres qualitatifsdebutquantitatifsfinquantitatifsdebutqualitatifs finqualitatifsdebutdetailmodalitesfindetailcriteres fincritereslpscntlpssumgssumcssumtsnavsaigs+ left join [leinetcriteresdesproduits] as as on leinetproduits.produit = as .produit)s and (as!.[critere]= %(critfiltre)s and as.modalite=%(modfiltre)s)scfCritsnomprods.[nom]) like 's's2 and (leinetproduits.typedeproduit in (%(type)s)) s8 and (leinetproduits.typedeproduit in (%(typeselect)s)) sk and ((leinettypesdeproduits.categorie1)=%(categorie)s or (leinettypesdeproduits.categorie2)=%(categorie)s)su and ((leinettypesdeproduits.categorie1) in (%(catselect)s) or (leinettypesdeproduits.categorie2) in (%(catselect)s))s, and ((leinetcategories.genre) = %(genre)s) s5 and ((leinetcategories.genre) in (%(genreselect)s)) s leinethoraires.du, s' leinethoraires.du, leinethoraires.au, s! and leinetproduits.dpt=%(dept)s s, and leinetproduits.dpt in (%(deptselect)s) s(leinethoraires right join (s) on leinethoraires.produit = se ,format([leinethoraires].[du],'dd/mm/yyyy') as du, format([leinethoraires].[au],'dd/mm/yyyy') as au s., [leinethoraires].[du], [leinethoraires].[au]s_ left join leinettypesdeproduits on leinetproduits.typedeproduit = leinettypesdeproduits.type) s left join leinetcategories on leinettypesdeproduits.categorie1 = leinetcategories.categorie or leinettypesdeproduits.categorie2 = leinetcategories.categorie) s.select leinetproduits.*, leinetproduits.memo1 sfroms nbperpagesdebutnoreponselisteproduitsfinnoreponselisteproduitsdebutlisteproduitsimage1s simage2simage3simage4sdptsdebutdetaillisteproduitsfindetaillisteproduitsfinlisteproduits+select count(leinetproduits.produit) as nbfsnbfssumgenressumcatssumtypesdebutnoreponsesumgenresfinnoreponsesumgenres debutsumgenres finsumgenresdebutnoreponsesumcategoriesfinnoreponsesumcategoriesdebutsumcategoriesfinsumcategoriesdebutnoreponsesumtypesfinnoreponsesumtypes debutsumtypes finsumtypes debutnoreponsecomptelisteproduitsfinnoreponsecomptelisteproduitsdebutcomptelisteproduitsfincomptelisteproduits selectionvidesnombmaxi2s1s10s taggodetailsstaggoprecisionsfrompsfromnsnbressdebutnavigationsnavigationprevsnavigationnotprevsnavigationnextsnavigationnotnexts finnavigations%ms%Ysdebutlistemoisi s0sdebutdetaillistemoissfindetaillistemoiss finlistemoissps<select leinetproduits.*,leinethoraires.au, leinethoraires.dus\ leinetproduits left join leinethoraires on leinetproduits.produit = leinethoraires.produit sproduits) and leinetproduits.produit = %(produit)ss debutproduits finproduitsp2s debutproduit2s finproduit2splinksdebutproduitlinksemailsdebutemailproduitsfinemailproduitsurlsdebuturlproduits finurlproduits melcontactsdebutemailcontactsfinemailcontacts urlcontactsdebuturlcontacts finurlcontactsfinproduitlinksnprodsdebutnumeroproduitsfinnumeroproduitsparsdebutparametress finparametresdess!select leinetproduits.descriptif s leinetproduits s descriptifs s s sdebutdescriptifsmodalites debutmodalites finmodalites findescriptifsdesexts`select leinetproduits.descriptif1,descriptif2,descriptif4,descriptif8,descriptif16,descriptif32 sclassesdebutsfinsasssAselect couplages from leinetproduits where produit = %(produit)ss couplagessdebutproduitassociesfinproduitassocieslistasss<select * from leinetproduits where produit in (%(couplage)s)s!debutnoreponselisteproduitassociesfinnoreponselisteproduitassociesdebutlisteproduitassociesdebutdetaillisteproduitassociesfindetaillisteproduitassociesfinlisteproduitassocieslistass2s8select * from leinetproduits where produit = %(produit)ssdebutlisteproduitassocie2s6select produit, nom from leinetproduits where produit=s"debutnoreponselisteproduitassocie2s finnoreponselisteproduitassocie2sfinlisteproduitassocie2spictosdebutaffichepictosselect leinetsyntheseproduits.critere, leinetsyntheseproduits.modalite, leinetsyntheseproduits.cri, leinetsyntheseproduits.moda, leinetsyntheseproduits.produit from leinetsyntheseproduits s where produit =sprods critmodpictos;s-s$ ((leinetsyntheseproduits.critere = s* and (leinetsyntheseproduits.modalite in (s))) or s) or sdebutbouclepictosimagessfinbouclepictosfinaffichepictoscrdsdebutcriteredescs/select distinct leinetcriteresdesproduitsdesc.*s$ from leinetcriteresdesproduitsdesc s/ order by leinetcriteresdesproduitsdesc.criteres= where (leinetcriteresdesproduitsdesc.produit = %(produit)s) scfModsmodSel_s, and (leinetcriteresdesproduitsdesc.critere=s) and (s+ or leinetcriteresdesproduitsdesc.modalite=is1=1)snomcritsdebutdetailcriteredescsdebutdetailmodalitedescsfindetailmodalitedescsfindetailcriteredescsfincriteredescs. and (leinetcriteresdesproduitsdesc.critere = scrdps modselects- and (leinetcriteresdesproduitsdesc.critere =s0 and leinetcriteresdesproduitsdesc.modalite in (s2 and (leinetcriteresdesproduitsdesc.critere in (0,shorsselect leinethoraires.produit, format([leinethoraires].[du],'dd/mm/yy') as du, format([leinethoraires].[au],'dd/mm/yy') as au, leinethoraires.nomproduit s from leinethoraires s where produit = %(produit)s s debuthorairesdebutdetailhorairesfindetailhoraires finhorairesdebutnoreponsehorairesfinnoreponsehorairesprest2sprests2select leinetprestataire.*, leinetproduits.produitso from leinetprestataire inner join leinetproduits on leinetprestataire.prestataire = leinetproduits.prestataires/ where (((leinetproduits.produit)=%(produit)s))sdebutprestatairesdebutemailprestatairesfinemailprestatairesdebuturlprestatairesfinurlprestatairesfinprestatairesvsdebutparametress finparametressafcrsselect distinct leinetsyntheseproduits.critere, leinetsyntheseproduits.modalite, leinetsyntheseproduits.cri, leinetsyntheseproduits.moda s from leinetsyntheseproduits sq where (((leinetsyntheseproduits.critere)=%(critfiltre)s) and ((leinetsyntheseproduits.modalite)=%(modfiltre)s)) sdebutaffichecritmodsfinaffichecritmodsdebutnoreponseaffichecritmodsfinnoreponseaffichecritmodslerreur : il faut donner au squelette (.sk) les paramtres afficher.
par exemple un paramtre boucle=

(vs parametreschamptrisSQLWebsmachinesbasesleidbsqsskeyssisstrsstringslowershas_keys versionsqlsesselfs maversionssyssstdoutsflushsendsqlsexitsskelTagsscheminssmtsprinttagscntcrdsignoressplitsignosigoscodests legroupbyslewherestablestablefssyntheseslehavingshorslegenreslacatsleausleauausledusledudusmoissintsmssansmsfsanfsdebsfinsupperslavilleslefromsleselectsleordersreqs selectsqlsfetchsqlscopysqstrstagssupdatesgettagsleplussqqchoses precedents dernierqualsNoneshorlies cmptsuitesentrees traitecfCritssorties lenomprodsnbressnbfsfsnbresmaxscntstimesstrftimesgmtimesmoiscousanneecousmoiscours anneecoursdatecoursqsreplaceschainestableauscrittestsstripsclassesclstagdebstagfinsasssleidb2sunassdecompslensxstempsreversesjoinslewhere2slecrislamodsksordres precedants nomcritselects nommodselect(Psselfsqsschamptrisleidbsisessmtscntcrdsignoresignosigoscodests legroupbyslewherestablestablefssyntheseslehavingshorslegenreslacatsleausleauausledusledudusmoissmssansmsfsanfsdebsfinslavilleslefromsleselectsleordersreqsqstrsleplussqqchoses precedents dernierqualshorlies cmptsuitesentreessorties lenomprodsnbressnbfsfsnbresmaxscntsmoiscousanneecousmoiscours anneecoursdatecoursqschainestableauscrittestsclassesclstagdebstagfinsasssleidb2sunassdecompsxstempslewhere2slecrislamodsksordres precedants nomcritselects nommodselects&E:\site\munster\cgi\sqlwebfunctions.pys interfaces  (          k      $  %      $   9  $ %$%  $ %  $     ! $ $ $! $! $   $   $   $   $ $ %                      5 9=         ^         $ -5  $    $! $! $! $ $ $ $ $  $  $  %$%  $ %  $      $ $    #"             +(+ $$              '''' /*                  %                                                              )             ''       (s__init__sversions isnumericsisdates traitecfCrits interface(s&E:\site\munster\cgi\sqlwebfunctions.pyssqlwebfunctionss     ( zN(ssysscgisstringstimesSQLWebsskelTagss parametressqlwebfunctions(s&E:\site\munster\cgi\sqlwebfunctions.pys?s