IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Accès aux données Discussion :

Choix du type de requêtes : SQL, LINQ ou autre (Projet C# .net + SQL server 2008)


Sujet :

Accès aux données

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 18
    Points : 16
    Points
    16
    Par défaut Choix du type de requêtes : SQL, LINQ ou autre (Projet C# .net + SQL server 2008)
    Bonjour,

    Je travaille sur l'élaboration d'une application en C# .net avec une base de données SQL Server 2008

    Au début je me suis penché sur LINQ vu que j'avais travaillé avec auparavant. Or mon application actuelle doit avoir une performance maximale et permettre l'accès simultané à la base d'un très grand nombre d'utilisateurs (environ 500).

    Selon les recherches que j'ai effectué jusqu'à maintenant, j'ai trouvé que :

    - L'utilisation de LINQ est plus simple au niveau des requêtes et celà ne dépend pas de la base de données utilisée et ne nécessite pas des connaissances en SQL.

    - Par ailleurs les requêtes LINQ mettent plus de temps que des requêtes SQL vu que les requêtes doivent être compliés ou qu'il faut faire des requêtes LINQ très élaborées pour avoir des résultats optimisés avec un temps de réponse avoisinnant le temps de réponse des requêtes SQL.

    1) J'aimerais savoir si mes constatations sont exactes.
    2) S'il y a d'autres alternatives
    3) savoir si le fait de travailler en SQL est plus judicieux pour un gain :
    a. du temps de réponse des requêtes
    b. du temps de developpement

  2. #2
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Mon point de vue :

    Citation Envoyé par lolo_momo Voir le message
    - L'utilisation de LINQ est plus simple au niveau des requêtes
    C'est vrai, enfin, un DBA ne serait peut-être pas d'accord ! :p

    Citation Envoyé par lolo_momo Voir le message
    et celà ne dépend pas de la base de données utilisée et ne nécessite pas des connaissances en SQL.
    Faux, avec SQL Server ça fonctionnera très bien, mais LinQ pour PostGre ou Oracle c'est pas encore ça... et cela ne dispense pas de connaissances/compétences en base de données.

    Citation Envoyé par lolo_momo Voir le message
    - Par ailleurs les requêtes LINQ mettent plus de temps que des requêtes SQL
    Généralement oui, après il est possible de configurer beaucoup de chose pour optimiser. Cela dépend aussi de la complexité de la base et des requêtes.

    Citation Envoyé par lolo_momo Voir le message
    2) S'il y a d'autres alternatives
    Un peu de lecture : http://immobilis.developpez.com/tuto...ity-framework/

    Citation Envoyé par lolo_momo Voir le message
    3) savoir si le fait de travailler en SQL est plus judicieux pour un gain :
    a. du temps de réponse des requêtes
    Oui, clairement.

    Citation Envoyé par lolo_momo Voir le message
    b. du temps de developpement
    Non, avec LinQ tu iras généralement plus vite à développer (sauf si le développeur découvre complétement) et ça sera généralement plus facilement maintenable.
    One minute was enough, Tyler said, a person had to work hard for it, but a minute of perfection was worth the effort. A moment was the most you could ever expect from perfection.

    -- Chuck Palahniuk, Fight Club, Chapter 3 --

  3. #3
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    En tant que grand novice Linq to SQL mais plutôt expert en SQL je suis assez peu d'accord avec la dernière affirmation d'Er3van.

    En effet, le SQL apporte plusieurs intérêts :
    - Possibilité qu'un DBA totalement étrangé au développement .NET puisse proposer des pistes d'amélioration des requêtes
    - Meilleure portabilité du code : en effet, entre PostGre, MySQL, SQL Server ou Oracle, 99% des requêtes qu'on utilise quotidiennement sont identiques. Et je ne parle pas des SGBD qui n'ont pas de connecteur Linq du tout !
    - Niveau maintenabilité, à nouveau, travailler avec SQL évite de mélanger les objets mémoire et les objets de la base. Ca évite les confusions.

    Je ne suis pas certain de moi*, mais je ne serais pas étonné que Linq to SQL puisse faire une jointure entre une List<T> et une table dans la base de données et avec un fichier XML. C'est très séduisant comme approche, mais je souhaite du courage à celui qui relis le code : si la requête Linq peut paraître plus courte et claire au premier abord, ne pas savoir quels objets physiques sont utilisés ni d'où ils viennent me trouble particulièrement.

    * : et si c'est impossible, avec Linq et des imbrications (testé) on peut de toute façon faire ces jointures en passant par des résultats de requêtes Linq comme éléments de base de nouvelles requêtes Linq. Il en résulte un joyeux bordel.
    On ne jouit bien que de ce qu’on partage.

  4. #4
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    J'étais parti sur Entity Framework plutôt que Linq To SQL (car pas précisé...) : on est sur SQL Server, pourquoi se priver ?

    En fait, ça va dépendre de ton contexte projet, il n'y a pas de vérité absolu.

    Si tu fais juste du passe-plat (requêtes simples, écriture simple) entre ton application et ta base, le gain sera intéressant à mon avis. C'est le cas d'un grand pourcentage d'application a priori..

    Par contre, si tu fais des requêtes complexes (type BI), il faudra de toute façon que tu travailles avec un DBA, donc autant faire du SQL.

    Citation Envoyé par StringBuilder Voir le message
    - Possibilité qu'un DBA totalement étrangé au développement .NET puisse proposer des pistes d'amélioration des requêtes
    Cela n'est pas incompatible ! Tu peux très bien avec des procédures stockées et les utiliser dans Entity Framework.

    Citation Envoyé par StringBuilder Voir le message
    - Meilleure portabilité du code : en effet, entre PostGre, MySQL, SQL Server ou Oracle, 99% des requêtes qu'on utilise quotidiennement sont identiques. Et je ne parle pas des SGBD qui n'ont pas de connecteur Linq du tout !
    Portabilité du code SQL? Je ne sais pas chez toi, mais dans ma boîte, on ne change pas très souvent de SGBD !
    Blague à part, si on est sur les 99% des requêtes qui sont identiques (chiffre d'ailleurs qui me surprend...) c'est qu'on n'est pas dans des cas d'utilisations très complexes.

    Citation Envoyé par StringBuilder Voir le message
    - Niveau maintenabilité, à nouveau, travailler avec SQL évite de mélanger les objets mémoire et les objets de la base. Ca évite les confusions.
    C'est un des buts des ORM, ne pas avoir à travailler avec les objets de la base. Confusion à quel niveau ?
    Si tu mets de l'intelligence dans ta base (procédures stockées) et de l'intelligence dans ton code, c'est là que tu crées de la confusion, spécialement pour la maintenance... mais ça peut se justifier pour des gains de performances.

    D'une manière générale, il y a toujours débat car l'angle de vue du DBA est relativement différent de celui du développeur.
    One minute was enough, Tyler said, a person had to work hard for it, but a minute of perfection was worth the effort. A moment was the most you could ever expect from perfection.

    -- Chuck Palahniuk, Fight Club, Chapter 3 --

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par lolo_momo Voir le message
    Par ailleurs les requêtes LINQ mettent plus de temps que des requêtes SQL vu que les requêtes doivent être compliés ou qu'il faut faire des requêtes LINQ très élaborées pour avoir des résultats optimisés avec un temps de réponse avoisinnant le temps de réponse des requêtes SQL.
    Vrai et Faux! Pour du CRUD, tu ne feras pas forcément mieux à la main en SQL. C'est vraiment dans le cas de requêtes complexes qui impliquent beaucoup de jointures, l'utilisation de hints, fonctions de fenetrages ou autres raffinements complexes... Pour le temps de compilation d'une requête LINQ ou le fait qu'un DBA n'aimera pas travailler avec un ORM, la aussi c'est du pipeau. Ok, il y a effectivement un temps de compilation de la requête mais une fois compilée, la compilation peut être sauvegardée et réutilisée. De toute facon, l'algorithme est déterministe. L'execution de deux fois la même requête LINQ produira deux fois le même SQL. Ca revient STRICTEMENT au même que de saisir à la main le SQL dans le code et la requête pourra être étudiée par un DBA car elle sera fixe.

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    En faite, mon projet consiste à créer un générateur de questionnaires dynamique.

    Il y aura 3 acteurs :

    Administrateur : Celui qui va créer lles questions et les réponses
    Chefs d'équipes : Ceux qui vont affecter les questions aux questionnaires selon les produits / les agents
    Agents : Ceux qui vont remplir ces formulaires


    J'ai opté pour le C# comme langage de développement et le WPF pour ce qui est de la présentation.
    Ma base de données est une base de données SQL Server 2008.

    Je suis amené à avoir un très bon résultat niveau performances. L'application devra gérer environ 500 utilisateurs. (2 Admin + 50 Chefs de projets + 400 Agents)
    Les utilisateurs pourront êtres connectés en même temps.

    J'ai consulté le lien que tu m'a donné http://immobilis.developpez.com/tuto...ity-framework/ concernant des méthodes d'accès. ( merci )

    Si j'ai bien compris, LinQ to SQL ainsi que l'Entity Framework (EF) sont des ORM. Du coup il faut vraiment optimiser soit les requetes LinQ soit l'Entity Framework avec des procédures stockés.

    - Un expert en .Net m'a conseillé de travaillé avec LinQ sans oublier l'optimisation en me précisant qu'avec les optimisations nécessaires, le temps de réponse revient au même que celui des requêtes SQL.
    - Un connaisseur en SQL Server 2008 m'a conseillé de travailler avec l'EF en optimisant du coté de la BD.
    - Un autre developeur .Net m'a conseillé de travailler simplement avec des requêtes SQL.

    Je n'ai pas optimisé de requêtes de BD auparavant. Ca ne me dérange pas d'apprendre ça bien au contraire. Mais est ce vraiment utile? Ne serait - ce t'il pas une perte de temps?

    Du coup je penche plutot vers la dernière solution (requêtes SQL) vu que là, je n'aurais pas le souci d'optimisation des ORM.

    Qu'en pensez vous?

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    rien ne t'empêche d'utiliser EF et des requêtes SQL classique (ou proc stock) pour les cas les plus complexes, je sais pas dans quel cas tu auras besoin de rapidité mais de ce que je vois EF devrait être largement suffisant dans ton cas

  8. #8
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Er3van Voir le message
    Cela n'est pas incompatible ! Tu peux très bien avec des procédures stockées et les utiliser dans Entity Framework.
    Au détail près qu'on ne veut pas forcément utiliser des PS ou autres, mais dans 99% des cas, de simples requêtes. Le problème avec Linq, c'est qu'on a du mal à savoir (et je pense qu'on n'est jamais sûr à 100%)* la requête qui a réellement être utilisée. Impossible donc pour un DBA de te faire utiliser des hints de table par exemple, ni d'adapter les index en fonction du plan d'exécution de la requête... puisque pour ça, il faudrait déjà connaître la requête !

    * : En effet, la moindre modification du code de la requête Linq, même anodin, va modifier la requête SQL, sans forcément qu'on s'en rende compte.

    Citation Envoyé par Er3van Voir le message
    Portabilité du code SQL? Je ne sais pas chez toi, mais dans ma boîte, on ne change pas très souvent de SGBD !
    Blague à part, si on est sur les 99% des requêtes qui sont identiques (chiffre d'ailleurs qui me surprend...) c'est qu'on n'est pas dans des cas d'utilisations très complexes.
    Beaucoup de logiciels sont écrit pour supporter plusieurs bases de données différentes. Et dans ce cas, au détriment de quelques pouillèmes de performances, une partie de l'intelligence est déportée dans le programme plutôt que dans les requêtes SQL. Ci-dessous, un extrait de LOG d'un ERP sur lequel je travaille : je te met au défit de trouver la moindre requête qui ne tourne pas sur 100% des SGBD du marché.

    Citation Envoyé par Er3van Voir le message
    D'une manière générale, il y a toujours débat car l'angle de vue du DBA est relativement différent de celui du développeur.
    Par expérience, l'angle de vue du DBA prime de loin sur celui du développeur.
    Plus le SGBD peut en faire et :
    - moins le développeur aura à en faire (donc autant pas trop la ramener)
    - plus le programme sera performant
    - moins le code sera complexe

    Avec Linq, effectivement, on y perd du coup un peu (je dis bien "un peu") car si on veux rester maître des requêtes exécutées,on ne peut pas bénéficier de Linq à 100%. Mais rien n'empêche de charger le résultat des requêtes dans des List<T> ou DataTable par exemple, et les traiter avec Linq ensuite, lorsqu'il faut les corréler avec d'autres objets (Linq to XML, Entity, etc.)

    Exemple de requêtes utilisées par un ERP : moi je te fais le portade de l'ERP quand tu veux dans des fichiers Excel avec le connecteur OLEDB pour Excel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
     
    select codsoc ,datmod ,utimod ,codent ,segment ,codsoc_phy ,niveau1 ,niveau2 ,niveau3 ,niveau4 ,niveau5 ,niveau6 ,niveau7 ,niveau8 ,niveau9 ,niveau10 ,mode_me ,propag from mev where codsoc = 100 and codent = 'PARAV' and segment = ' ' ;
    select codsoc ,datmod ,utimod ,codpar ,codfct ,libpar ,para1 ,para2 ,para3 ,parm1 ,parm2 ,parn1 ,parn2 ,parn3 ,parn4 ,parn5 ,pard1 ,pard2 ,pard3 ,actif from parav where codsoc = 100 and codfct = 'QCMOE7' order by codsoc ASC,codfct ASC,codpar ASC;
    select codsoc ,datmod ,utimod ,codpar ,codfct ,libpar ,para1 ,para2 ,para3 ,parm1 ,parm2 ,parn1 ,parn2 ,parn3 ,parn4 ,parn5 ,pard1 ,pard2 ,pard3 ,actif from parav where codsoc = 100 and codfct = ' ' order by codsoc ASC,codfct ASC,codpar ASC;
    select fct ,uti ,datact ,heuact ,datdeb ,heudeb ,datfin ,heufin ,page ,st1 ,st2 ,fprint ,batch ,nbi ,forma ,afct ,auti ,numero ,nbc ,dir ,tfc ,automanu ,edit ,maq ,nomprc ,ord ,contin ,code_maq ,datmod ,utimod ,codsoc ,nommaq ,numpere ,codpled ,etape ,posext ,eshs ,nummes ,attr from ut_spl where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 0 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    select fct ,tit ,cat ,eshs ,typut_fct ,fic ,batch ,fprint ,forma ,app ,modfct ,par ,trace ,tir ,maq ,codsoc ,option_fon ,cod_fct_pere from ut_fct where codsoc = 100 and fct = 'QCMOE7' ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 51 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 100 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 130 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    select numero ,numpar ,automanu ,param ,datmod ,utimod ,codsoc ,nomtable ,nomchp from ut_par where codsoc = 100 and numero = 2976 and numpar >= 0 order by codsoc ASC,numero ASC,numpar ASC;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 131 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 200 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 230 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 231 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 260 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 261 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 300 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 350 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 351 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 400 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 410 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 411 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 420 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = 'vin' order by codsoc ASC,codtbl ASC,cletbl ASC;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = 'cbe' and cletbl = 'DEVNAT' ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = 'cbe' and cletbl = 'PARAM' ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = 'cbe' and cletbl = 'STOCKS' ;
    select fct ,uti ,datact ,heuact ,datdeb ,heudeb ,datfin ,heufin ,page ,st1 ,st2 ,fprint ,batch ,nbi ,forma ,afct ,auti ,numero ,nbc ,dir ,tfc ,automanu ,edit ,maq ,nomprc ,ord ,contin ,code_maq ,datmod ,utimod ,codsoc ,nommaq ,numpere ,codpled ,etape ,posext ,eshs ,nummes ,attr from ut_spl where codsoc = 100 and numero = 2976 ;
    select typtie ,sigtie ,nomtie ,adrcom ,cpttie ,nombqe ,codbqe ,guiche ,cptbqe ,clerib ,coddpt ,modrgl ,delrgl ,codqua ,tauesc ,encmax ,encass ,anccde ,encfac ,enceff ,encenc ,perfac ,nbrfac ,edicot ,facrel ,posfis ,forfai ,editrt ,indsup ,codinc ,datmod ,utimod ,typfac ,famtie ,codbar ,coddev ,sigrep ,siggrp ,codlan ,mincde ,sigdep ,sigtra ,modliv ,relica ,sigach ,propri ,socges ,delrea ,blocliv ,libloc ,surfac ,surfres ,colec ,typtpv ,commer ,machin ,bqedom ,bqetra ,plafon ,fil ,codreg ,modtra ,codzn1 ,codzn2 ,codzn3 ,codzn4 ,codzn5 ,codzn6 ,codzn7 ,codzn8 ,codzn9 ,codzn10 ,codzn11 ,codzn12 ,codzn13 ,codzn14 ,codzn15 ,codzn16 ,codett ,datcre ,typgrp ,typrep ,cnufd ,nbcai ,indcat ,dreftar ,enseigne ,indref ,nbrjour ,numfil ,minfra ,dateve ,p_tietcp ,p_tiesig ,p_3ctcod ,p_3g1cod ,p_3g2cod ,p_3g3cod ,p_3g4cod ,p_3g5cod ,p_ribcodp ,codsoc ,p_tietpa ,p_tiespay ,p_3fccod ,p_tiebap ,p_tieintgr ,p_tielet ,etbcod ,etsstatut ,datexp ,calrea ,p_tiegrp ,moyrgl ,p_tiebim ,datinc ,indtim ,sigtrs ,guidrgl ,telven ,p_tieesc ,achvte_cat ,codcat ,datprc_cde ,nbjcde ,delsec ,codsoc_phy from tie where codsoc = 100 and typtie = 'SOC' and sigtie = 'CEDILAC' ;
    select sigtie ,typtie ,typadr ,numadr ,sigadr ,typtie1 ,typadr1 ,numadr1 ,datmod ,utimod ,codsoc from lad where codsoc = 100 and sigtie = 'CEDILAC' and typtie = 'SOC' and typadr = 'COM' and numadr = 1 ;
    select sigadr ,typtie ,typadr ,numadr ,libadr ,adress ,adrsui ,locali ,codpos ,cenpos ,codpay ,contac ,foncti ,tel ,telex ,fax ,siret ,codape ,codsec ,codtrn ,codatv ,indsup ,datmod ,utimod ,commen1 ,commen2 ,commen3 ,commen4 ,commen5 ,ouvre ,ferme ,ouvre1 ,ferme1 ,ouvre2 ,ferme2 ,ouvre3 ,ferme3 ,ouvre4 ,ferme4 ,ouvre5 ,ferme5 ,ouvre6 ,ferme6 ,ouvre7 ,ferme7 ,ouvre8 ,ferme8 ,ouvre9 ,ferme9 ,ouvre10 ,ferme10 ,ouvre11 ,ferme11 ,ouvre12 ,ferme12 ,ouvre13 ,ferme13 ,codciv ,tvainter ,insee ,cnufd ,cifd ,adredi ,indean ,codser ,delrea ,gespal ,codsoc ,ean13 ,codpos_10 ,codlan ,libadr50 ,ligadr50_1 ,ligadr50_2 ,ligadr50_3 ,locali50 ,cenpos50 ,posfis ,sigdep ,sigtra ,sigtrs ,libmou ,modtra ,modliv1 ,modloc ,delliv ,relica ,dedoub ,codzn1 ,codzn2 ,codzn3 ,codzn4 ,codzn5 ,codzn6 ,codzn7 ,codzn8 ,codzn9 ,codzn10 ,codzn11 ,codzn12 ,codzn13 ,codzn14 ,codzn15 ,codzn16 ,codzn17 ,codzn18 ,codzn19 ,codzn20 ,prenom ,ligadr50_4 ,statut6 ,datcre ,gsm ,telprof ,datnai from adr where codsoc = 100 and sigadr = 'CEDILAC' and typtie = 'SOC' and typadr = 'COM' and numadr = 1 ;
    select codsoc ,cpttie ,p_ribcod ,p_ribdev ,p_4bqcbq ,p_4bqgui ,p_ribnom ,p_ribloc ,p_ribcpt ,p_ribcle ,p_ribprinc ,datmod ,utimod ,p_ribtyp ,p_4bqbnk ,p_4bqgch ,p_ribncp ,p_ribcrib ,p_ribdeb ,p_ribfin ,p_ribtitulaire ,bic ,iban from rib where codsoc = 100 and cpttie = 'CEDILAC' and p_ribcod = '001' ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 1 and codtbl = 'pay' and cletbl = 'FR' ;
    select uti ,nom ,eshs ,lan ,niv ,qua ,uni ,nbe ,affi ,codut_ter ,fprint ,batch ,dir ,poste ,trace ,ser ,datmod ,utimod ,codsoc ,statut ,codlan ,email256 ,tz from ut_uti where codsoc = 100 and uti = 'GNC' ;
    select codfct ,codpled ,titedt ,maqedt ,batch ,fprint ,indimpi ,nbcop ,commen1 ,commen2 ,datmod ,utimod ,ligwhere1 ,ligwhere2 ,ligwhere3 ,code_maq ,format ,vue_util ,codsoc ,eshs ,nommaq ,niv ,codlan ,attpled ,nummes ,attr from ut_pled where codsoc = 100 and codfct = 'QCMOE7' and codpled = '1C' and codlan = 'FRA' ;
    select codfct ,codpled ,numord ,datmod ,utimod ,nomchp ,typchp ,critlir ,numtri ,sais_tri ,critdeb ,critfin ,critcom ,sais_crit ,codsoc ,codlan from ut_pledc where codsoc = 100 and codfct = 'QCMOE7' and codpled = '1C' and codlan = 'FRA' and nomchp LIKE 'z40l_1%' order by codsoc ASC,codfct ASC,codpled ASC,codlan ASC,nomchp ASC;
    select codfct ,codpled ,numord ,datmod ,utimod ,nomchp ,typchp ,critlir ,numtri ,sais_tri ,critdeb ,critfin ,critcom ,sais_crit ,codsoc ,codlan from ut_pledc where codsoc = 100 and codfct = 'QCMOE7' and codpled = '1C' and codlan = 'FRA' and nomchp LIKE 'datexp%' order by codsoc ASC,codfct ASC,codpled ASC,codlan ASC,nomchp ASC;
    select codfct ,codpled ,numord ,datmod ,utimod ,nomchp ,typchp ,critlir ,numtri ,sais_tri ,critdeb ,critfin ,critcom ,sais_crit ,codsoc ,codlan from ut_pledc where codsoc = 100 and codfct = 'QCMOE7' and codpled = '1C' and codlan = 'FRA' and nomchp LIKE 'achvte%' order by codsoc ASC,codfct ASC,codpled ASC,codlan ASC,nomchp ASC;
    select codfct ,codpled ,numord ,datmod ,utimod ,nomchp ,typchp ,critlir ,numtri ,sais_tri ,critdeb ,critfin ,critcom ,sais_crit ,codsoc ,codlan from ut_pledc where codsoc = 100 and codfct = 'QCMOE7' and codpled = '1C' and codlan = 'FRA' and nomchp LIKE 'typeve%' order by codsoc ASC,codfct ASC,codpled ASC,codlan ASC,nomchp ASC;
    select codfct ,codpled ,numord ,datmod ,utimod ,nomchp ,typchp ,critlir ,numtri ,sais_tri ,critdeb ,critfin ,critcom ,sais_crit ,codsoc ,codlan from ut_pledc where codsoc = 100 and codfct = 'QCMOE7' and codpled = '1C' and codlan = 'FRA' and nomchp LIKE 'typeve%' order by codsoc ASC,codfct ASC,codpled ASC,codlan ASC,nomchp ASC;
    select codfct ,codpled ,numord ,datmod ,utimod ,nomchp ,typchp ,critlir ,numtri ,sais_tri ,critdeb ,critfin ,critcom ,sais_crit ,codsoc ,codlan from ut_pledc where codsoc = 100 and codfct = 'QCMOE7' and codpled = '1C' and codlan = 'FRA' and nomchp LIKE 'typeve%' order by codsoc ASC,codfct ASC,codpled ASC,codlan ASC,nomchp ASC;
    select codfct ,codpled ,numord ,datmod ,utimod ,nomchp ,typchp ,critlir ,numtri ,sais_tri ,critdeb ,critfin ,critcom ,sais_crit ,codsoc ,codlan from ut_pledc where codsoc = 100 and codfct = 'QCMOE7' and codpled = '1C' and codlan = 'FRA' and nomchp LIKE 'codpro%' order by codsoc ASC,codfct ASC,codpled ASC,codlan ASC,nomchp ASC;
    select codfct ,codpled ,numord ,datmod ,utimod ,nomchp ,typchp ,critlir ,numtri ,sais_tri ,critdeb ,critfin ,critcom ,sais_crit ,codsoc ,codlan from ut_pledc where codsoc = 100 and codfct = 'QCMOE7' and codpled = '1C' and codlan = 'FRA' and nomchp LIKE 'codpro%' order by codsoc ASC,codfct ASC,codpled ASC,codlan ASC,nomchp ASC;
    select codfct ,codpled ,numord ,datmod ,utimod ,nomchp ,typchp ,critlir ,numtri ,sais_tri ,critdeb ,critfin ,critcom ,sais_crit ,codsoc ,codlan from ut_pledc where codsoc = 100 and codfct = 'QCMOE7' and codpled = '1C' and codlan = 'FRA' and nomchp LIKE 'sigdep%' order by codsoc ASC,codfct ASC,codpled ASC,codlan ASC,nomchp ASC;
    select codfct ,codpled ,numord ,datmod ,utimod ,nomchp ,typchp ,critlir ,numtri ,sais_tri ,critdeb ,critfin ,critcom ,sais_crit ,codsoc ,codlan from ut_pledc where codsoc = 100 and codfct = 'QCMOE7' and codpled = '1C' and codlan = 'FRA' and nomchp LIKE 'codpro%' order by codsoc ASC,codfct ASC,codpled ASC,codlan ASC,nomchp ASC;
    select codfct ,codpled ,numord ,datmod ,utimod ,nomchp ,typchp ,critlir ,numtri ,sais_tri ,critdeb ,critfin ,critcom ,sais_crit ,codsoc ,codlan from ut_pledc where codsoc = 100 and codfct = 'QCMOE7' and codpled = '1C' and codlan = 'FRA' and nomchp LIKE 'z40l_1%' order by codsoc ASC,codfct ASC,codpled ASC,codlan ASC,nomchp ASC;
    select codfct ,codpled ,numord ,datmod ,utimod ,nomchp ,typchp ,critlir ,numtri ,sais_tri ,critdeb ,critfin ,critcom ,sais_crit ,codsoc ,codlan from ut_pledc where codsoc = 100 and codfct = 'QCMOE7' and codpled = '1C' and codlan = 'FRA' and nomchp LIKE 'datexp%' order by codsoc ASC,codfct ASC,codpled ASC,codlan ASC,nomchp ASC;
    select codpev ,libpev ,achvte ,typeve ,codosk ,achvto ,typevo ,depaut ,majcnt ,majenc ,ordre1 ,ordre2 ,ordre3 ,saiqte ,achvts ,typevs ,ordeve ,ordevs ,ordevo ,evoobl ,codosk_d ,codosk_v ,codosk_vd ,ordre4 ,ordre5 ,ordre6 ,ordre7 ,ordre8 ,ordre9 ,ordre10 ,engage ,ridatliv ,ridatexp ,moduni ,annule ,typtie ,datmod ,utimod ,etaevo ,invalidati ,refprod ,pevoevo ,codeta ,valeta ,codett ,forcev ,gesstk ,nbjliv ,nbjexp ,codppe1 ,para1 ,parn1 ,codppe2 ,para2 ,parn2 ,codppe3 ,para3 ,parn3 ,codppe4 ,para4 ,parn4 ,codppe5 ,para5 ,parn5 ,codppe6 ,para6 ,parn6 ,soleta ,codppe7 ,para7 ,parn7 ,codppe8 ,para8 ,parn8 ,codppe9 ,para9 ,parn9 ,codppe10 ,para10 ,parn10 ,codppe11 ,para11 ,parn11 ,codppe12 ,para12 ,parn12 ,codsoc from pev where codsoc = 100 and codpev = 'QCMOE7' ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = 'zon' and cletbl LIKE 'PRO%' order by codsoc ASC,codtbl ASC,cletbl ASC;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = 'zon' and cletbl LIKE 'OST%' order by codsoc ASC,codtbl ASC,cletbl ASC;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 421 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    update ut_spl set fct = 'QCMOE7' ,uti = 'GNC' ,datact = '20120215' ,heuact = '1208' ,datdeb = '20120215' ,heudeb = '1209' ,datfin = '20120215' ,heufin = '1209' ,page = 6 ,st1 = 3 ,st2 = ' ' ,fprint = 'ISUC37' ,batch = 'EXPS5C' ,nbi = 1 ,forma = 'S5' ,afct = 'QCMO' ,auti = ' ' ,numero = 2976 ,nbc = 1 ,dir = '#trt@ap$spl:' ,tfc = 'Analyse de dispo metro. J+1 RE CB' ,automanu = 'M' ,edit = 'O' ,maq = ' ' ,nomprc = '2976QCMOE7' ,ord = 1 ,contin = 'N' ,code_maq = ' ' ,datmod = '20120215' ,utimod = 'GNC' ,codsoc = 100 ,nommaq = '#TRT@ap$maq:qdispodlc.j1' ,numpere = 0 ,codpled = ' ' ,etape = 440 ,posext = 0 ,eshs = 'ES' ,nummes = 0 ,attr = 0 where codsoc = 100 and numero = 2976 ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = 'zon' and cletbl LIKE 'EVE%' order by codsoc ASC,codtbl ASC,cletbl ASC;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = 'zon' and cletbl LIKE 'EVP%' order by codsoc ASC,codtbl ASC,cletbl ASC;
    select codpro ,motcle ,fampro ,sfapro ,ssfpro ,nompro ,gencod ,coddou ,typpro ,exicot ,codtva ,coduni ,qtemin ,codtax ,codtax2 ,sigdep ,codrea ,suistk ,prostk ,delpre ,suistt ,claabc ,datmar ,poids ,haute ,large ,longue ,volume ,codtar ,design1 ,design2 ,design3 ,typtar ,sigfou ,datmod ,utimod ,refpro ,numvar ,tpsmon ,indcom ,va ,vl ,coduvc ,codue ,nbucue ,pcb ,unipcb ,spcb ,unispcb ,codzn1 ,codzn2 ,codzn3 ,codzn4 ,codzn5 ,codzn6 ,codzn7 ,codzn8 ,codzn9 ,codzn10 ,codzn11 ,codzn12 ,codzn13 ,codzn14 ,codzn15 ,codzn16 ,unicol ,colec1 ,stck1 ,colec2 ,stck2 ,colec3 ,stck3 ,colec4 ,stck4 ,colec5 ,stck5 ,colec6 ,stck6 ,colec7 ,stck7 ,colec8 ,stck8 ,colec9 ,stck9 ,design4 ,design5 ,design6 ,design7 ,design8 ,design9 ,design10 ,design11 ,design12 ,coddev ,codblocage ,poidsnet ,typaff ,qotite ,unista ,prosta ,indcts ,indris ,valpvr ,pdspvr ,volpvr ,numlsk ,codsoc ,delrea ,datcre ,etbcod ,etsstatut ,codconv ,claabcp ,delper ,suiins ,suiice ,nomise ,uniice ,typifa ,uniper ,delgar ,unigar ,achice ,typice ,sigice ,verice ,prorub ,teecod ,teeuni ,teeprx ,modlot ,codpay ,ttaice ,codmdl ,proref ,suiref ,repart ,codunic ,typref ,datfinmar ,natpro ,rglarr ,margemini ,mcalcvc ,nbjcvc ,nivrot ,modappro ,codsoc_phy ,sssfp1 ,sssfp2 ,sssfp3 ,sssfp4 ,sssfp5 ,sssfp6 ,sssfp7 from pro where codsoc = 100 and codpro = '213230002' ;
    select achvte ,typeve ,numeve ,numpos ,numlig ,datliv ,codsta ,numadr ,modliv ,sigtra ,modtra ,sigdep ,numlot ,qteliv ,qtecde ,typevo ,numevo ,numpoo ,numlio ,nbrcol ,datmod ,utimod ,achvto ,achvts ,typevs ,numevs ,numposs ,numlis ,perliv ,datval ,datexp ,perval ,perexp ,annliv ,annval ,annexp ,qtesup1 ,qtesup2 ,qtesup3 ,indver ,delliv ,deleng ,dateng ,codemp ,numadr_dep ,libcom ,qteperdu ,ordevs ,indapr ,typliv ,sigliv ,codsoc ,modloc ,codtrn ,codpro ,codrgp ,qtesup4 ,qtesup5 ,qtesup6 ,numadr_i ,achvteise ,typise ,numise ,numipa ,numisp ,sigtrs ,batvol ,cmpnie ,nlta ,datdep ,datarr ,heuarr ,heudep ,codfct ,codpev from evl where codsoc = 100 and achvte = 'V' and typeve = 'CDE' and numeve = 1367250 and numpos = 11 and numlig = 1 ;
    select sigdep ,codpro ,libstk ,codemp ,coduni ,datcre ,datper ,datpmp ,pump ,valpump ,datdpa ,dpa ,valdpa ,codrea ,codcrb ,css ,cso ,cpc ,cqe ,perinv ,numinv ,datinv ,datpin ,c01 ,c02 ,c03 ,c04 ,c05 ,c06 ,c07 ,c08 ,c09 ,c10 ,c11 ,c12 ,c13 ,c14 ,datmsk ,nummsk ,datmod ,utimod ,qtemin ,qotite ,typaff ,codsoc ,suistk ,codsoc_phy ,statut ,nompor ,lmodcol ,clsinv ,modent ,modsor ,gesnumlot ,gesnumser ,typfifo ,tolfifo ,unttolfifo ,tolpds ,retention ,durdlv ,untdurdlv ,durdluo ,untdurdluo ,durdlc ,untdurdlc ,codemp1 ,codemp2 ,nbremp ,gespick ,occmax1 ,cnttyp ,cntcod ,clavol ,lcodmag ,nbremp1 ,mcalcvc ,nbjcvc ,nivrot ,modappro ,sigtie_ser ,delrea ,delsup ,delpre ,delsec ,claabc ,claabcp ,typtie_ser from dsk where codsoc = 100 and codpro = '213230002' and sigdep = ' ' ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 1 and codtbl = 'dev' and cletbl = 'FRF' ;
    select codpro ,motcle ,fampro ,sfapro ,ssfpro ,nompro ,gencod ,coddou ,typpro ,exicot ,codtva ,coduni ,qtemin ,codtax ,codtax2 ,sigdep ,codrea ,suistk ,prostk ,delpre ,suistt ,claabc ,datmar ,poids ,haute ,large ,longue ,volume ,codtar ,design1 ,design2 ,design3 ,typtar ,sigfou ,datmod ,utimod ,refpro ,numvar ,tpsmon ,indcom ,va ,vl ,coduvc ,codue ,nbucue ,pcb ,unipcb ,spcb ,unispcb ,codzn1 ,codzn2 ,codzn3 ,codzn4 ,codzn5 ,codzn6 ,codzn7 ,codzn8 ,codzn9 ,codzn10 ,codzn11 ,codzn12 ,codzn13 ,codzn14 ,codzn15 ,codzn16 ,unicol ,colec1 ,stck1 ,colec2 ,stck2 ,colec3 ,stck3 ,colec4 ,stck4 ,colec5 ,stck5 ,colec6 ,stck6 ,colec7 ,stck7 ,colec8 ,stck8 ,colec9 ,stck9 ,design4 ,design5 ,design6 ,design7 ,design8 ,design9 ,design10 ,design11 ,design12 ,coddev ,codblocage ,poidsnet ,typaff ,qotite ,unista ,prosta ,indcts ,indris ,valpvr ,pdspvr ,volpvr ,numlsk ,codsoc ,delrea ,datcre ,etbcod ,etsstatut ,codconv ,claabcp ,delper ,suiins ,suiice ,nomise ,uniice ,typifa ,uniper ,delgar ,unigar ,achice ,typice ,sigice ,verice ,prorub ,teecod ,teeuni ,teeprx ,modlot ,codpay ,ttaice ,codmdl ,proref ,suiref ,repart ,codunic ,typref ,datfinmar ,natpro ,rglarr ,margemini ,mcalcvc ,nbjcvc ,nivrot ,modappro ,codsoc_phy ,sssfp1 ,sssfp2 ,sssfp3 ,sssfp4 ,sssfp5 ,sssfp6 ,sssfp7 from pro where codsoc = 100 and codpro = '213230002' ;
    select sigdep ,codpro ,libstk ,codemp ,coduni ,datcre ,datper ,datpmp ,pump ,valpump ,datdpa ,dpa ,valdpa ,codrea ,codcrb ,css ,cso ,cpc ,cqe ,perinv ,numinv ,datinv ,datpin ,c01 ,c02 ,c03 ,c04 ,c05 ,c06 ,c07 ,c08 ,c09 ,c10 ,c11 ,c12 ,c13 ,c14 ,datmsk ,nummsk ,datmod ,utimod ,qtemin ,qotite ,typaff ,codsoc ,suistk ,codsoc_phy ,statut ,nompor ,lmodcol ,clsinv ,modent ,modsor ,gesnumlot ,gesnumser ,typfifo ,tolfifo ,unttolfifo ,tolpds ,retention ,durdlv ,untdurdlv ,durdluo ,untdurdluo ,durdlc ,untdurdlc ,codemp1 ,codemp2 ,nbremp ,gespick ,occmax1 ,cnttyp ,cntcod ,clavol ,lcodmag ,nbremp1 ,mcalcvc ,nbjcvc ,nivrot ,modappro ,sigtie_ser ,delrea ,delsup ,delpre ,delsec ,claabc ,claabcp ,typtie_ser from dsk where codsoc = 100 and codpro = '213230002' and sigdep = '99' ;
    select sigdep ,codpro ,numlot ,libstk ,codemp ,datcre ,datper ,c01 ,c02 ,c03 ,c04 ,c05 ,c06 ,c07 ,c08 ,c09 ,c10 ,c11 ,c12 ,c13 ,c14 ,datmsk ,nummsk ,pump ,datpmp ,valpump ,dpa ,datdpa ,valdpa ,datmod ,utimod ,coduni ,codrea ,codcrb ,css ,cso ,cpc ,cqe ,perinv ,numinv ,datinv ,datpin ,codsoc ,qtelsk from lsk where codsoc = 100 and sigdep = '99' and codpro = '213230002' order by codsoc ASC,sigdep ASC,codpro ASC,numlot ASC;
    select codut_mes ,lan ,libut_mes ,gra ,val ,bip ,trace ,affi ,soft ,typut_mes ,datmod ,utimod ,codsoc ,codlan from ut_mes where codsoc = 1 and codut_mes = 'ELT_PASTRO' and codlan = 'FRA' ;
    select typtie ,sigtie ,nomtie ,adrcom ,cpttie ,nombqe ,codbqe ,guiche ,cptbqe ,clerib ,coddpt ,modrgl ,delrgl ,codqua ,tauesc ,encmax ,encass ,anccde ,encfac ,enceff ,encenc ,perfac ,nbrfac ,edicot ,facrel ,posfis ,forfai ,editrt ,indsup ,codinc ,datmod ,utimod ,typfac ,famtie ,codbar ,coddev ,sigrep ,siggrp ,codlan ,mincde ,sigdep ,sigtra ,modliv ,relica ,sigach ,propri ,socges ,delrea ,blocliv ,libloc ,surfac ,surfres ,colec ,typtpv ,commer ,machin ,bqedom ,bqetra ,plafon ,fil ,codreg ,modtra ,codzn1 ,codzn2 ,codzn3 ,codzn4 ,codzn5 ,codzn6 ,codzn7 ,codzn8 ,codzn9 ,codzn10 ,codzn11 ,codzn12 ,codzn13 ,codzn14 ,codzn15 ,codzn16 ,codett ,datcre ,typgrp ,typrep ,cnufd ,nbcai ,indcat ,dreftar ,enseigne ,indref ,nbrjour ,numfil ,minfra ,dateve ,p_tietcp ,p_tiesig ,p_3ctcod ,p_3g1cod ,p_3g2cod ,p_3g3cod ,p_3g4cod ,p_3g5cod ,p_ribcodp ,codsoc ,p_tietpa ,p_tiespay ,p_3fccod ,p_tiebap ,p_tieintgr ,p_tielet ,etbcod ,etsstatut ,datexp ,calrea ,p_tiegrp ,moyrgl ,p_tiebim ,datinc ,indtim ,sigtrs ,guidrgl ,telven ,p_tieesc ,achvte_cat ,codcat ,datprc_cde ,nbjcde ,delsec ,codsoc_phy from tie where codsoc = 100 and typtie = 'DEP' and sigtie = '99' ;
    select typtie ,sigtie ,nomtie ,adrcom ,cpttie ,nombqe ,codbqe ,guiche ,cptbqe ,clerib ,coddpt ,modrgl ,delrgl ,codqua ,tauesc ,encmax ,encass ,anccde ,encfac ,enceff ,encenc ,perfac ,nbrfac ,edicot ,facrel ,posfis ,forfai ,editrt ,indsup ,codinc ,datmod ,utimod ,typfac ,famtie ,codbar ,coddev ,sigrep ,siggrp ,codlan ,mincde ,sigdep ,sigtra ,modliv ,relica ,sigach ,propri ,socges ,delrea ,blocliv ,libloc ,surfac ,surfres ,colec ,typtpv ,commer ,machin ,bqedom ,bqetra ,plafon ,fil ,codreg ,modtra ,codzn1 ,codzn2 ,codzn3 ,codzn4 ,codzn5 ,codzn6 ,codzn7 ,codzn8 ,codzn9 ,codzn10 ,codzn11 ,codzn12 ,codzn13 ,codzn14 ,codzn15 ,codzn16 ,codett ,datcre ,typgrp ,typrep ,cnufd ,nbcai ,indcat ,dreftar ,enseigne ,indref ,nbrjour ,numfil ,minfra ,dateve ,p_tietcp ,p_tiesig ,p_3ctcod ,p_3g1cod ,p_3g2cod ,p_3g3cod ,p_3g4cod ,p_3g5cod ,p_ribcodp ,codsoc ,p_tietpa ,p_tiespay ,p_3fccod ,p_tiebap ,p_tieintgr ,p_tielet ,etbcod ,etsstatut ,datexp ,calrea ,p_tiegrp ,moyrgl ,p_tiebim ,datinc ,indtim ,sigtrs ,guidrgl ,telven ,p_tieesc ,achvte_cat ,codcat ,datprc_cde ,nbjcde ,delsec ,codsoc_phy from tie where codsoc = 100 and typtie = 'REP' and sigtie = 'S800' ;
    select achvte ,typeve ,numeve ,sigtie ,typtie ,numver ,dateve ,datval ,datcre ,datliv ,typevo ,numevo ,nbrfac ,typfac ,codurg ,codeta ,codctg ,refext ,numcnt ,coddev ,pardev ,numadr ,modliv ,sigtra ,modtra ,nbrrel ,numrel ,dataco ,monaco ,tauesc ,datcli ,codblo ,datblo ,exicvc ,exicvm ,exitxt ,cumht ,cumttc ,sigrep ,codana ,modrgl ,delrgl ,coddpt ,codqua ,totcol ,sigdep ,datmod ,utimod ,posfis ,totht ,codtva ,cumpr ,libcom ,taurem ,monrem ,codana1 ,codana2 ,taucom ,typrem ,achvto ,perfac ,camion ,indapr ,totttc ,datedi ,indedi ,indsol ,achvts ,typevs ,numevs ,pereve ,perliv ,indepu ,codbar ,datexp ,perval ,perexp ,anneve ,annliv ,annval ,annexp ,achbch ,typbch ,numbch ,indint ,delliv ,deleng ,sigmag ,datrgl ,codtrn ,codpos ,monremfac ,taurem2 ,taurem3 ,dateng ,sigact ,geleve ,poshie ,editrt ,sigval ,ordevs ,batiment ,typliv ,sigliv ,numatt ,codsoc ,modloc ,facrel ,codass ,edicts ,relica ,etbcod ,etsstatut ,achvtt ,codsit1 ,numvoy ,numfil ,tauagio ,monesc ,monagio ,tauescd ,ncotat ,tauca ,p_ribcod ,p_ecrnum ,codeop ,numadr_i ,achvteise ,typise ,numise ,sigtrs ,numlcr ,batvol ,cmpnie ,nlta ,datdep ,datarr ,heuarr ,heudep ,guidrgl ,achvte_cat ,codcat ,heuexp1 ,heuexp2 ,heueve ,heuvali ,heuliv1 ,heuliv2 ,typgel ,numgel ,codrgm ,codvhc ,chrono ,numctc ,typcpr ,codcb ,statut6 from eve where codsoc = 100 and achvte = 'V' and typeve = 'CDE' and numeve = 1367250 ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 1 and codtbl = 'mrg' and cletbl = 'BO' ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 1 and codtbl = 'dpt' and cletbl = 'H' ;
    select typtie ,sigtie ,nomtie ,adrcom ,cpttie ,nombqe ,codbqe ,guiche ,cptbqe ,clerib ,coddpt ,modrgl ,delrgl ,codqua ,tauesc ,encmax ,encass ,anccde ,encfac ,enceff ,encenc ,perfac ,nbrfac ,edicot ,facrel ,posfis ,forfai ,editrt ,indsup ,codinc ,datmod ,utimod ,typfac ,famtie ,codbar ,coddev ,sigrep ,siggrp ,codlan ,mincde ,sigdep ,sigtra ,modliv ,relica ,sigach ,propri ,socges ,delrea ,blocliv ,libloc ,surfac ,surfres ,colec ,typtpv ,commer ,machin ,bqedom ,bqetra ,plafon ,fil ,codreg ,modtra ,codzn1 ,codzn2 ,codzn3 ,codzn4 ,codzn5 ,codzn6 ,codzn7 ,codzn8 ,codzn9 ,codzn10 ,codzn11 ,codzn12 ,codzn13 ,codzn14 ,codzn15 ,codzn16 ,codett ,datcre ,typgrp ,typrep ,cnufd ,nbcai ,indcat ,dreftar ,enseigne ,indref ,nbrjour ,numfil ,minfra ,dateve ,p_tietcp ,p_tiesig ,p_3ctcod ,p_3g1cod ,p_3g2cod ,p_3g3cod ,p_3g4cod ,p_3g5cod ,p_ribcodp ,codsoc ,p_tietpa ,p_tiespay ,p_3fccod ,p_tiebap ,p_tieintgr ,p_tielet ,etbcod ,etsstatut ,datexp ,calrea ,p_tiegrp ,moyrgl ,p_tiebim ,datinc ,indtim ,sigtrs ,guidrgl ,telven ,p_tieesc ,achvte_cat ,codcat ,datprc_cde ,nbjcde ,delsec ,codsoc_phy from tie where codsoc = 100 and typtie = 'CLI' and sigtie = '169706' ;
    select codpro ,motcle ,fampro ,sfapro ,ssfpro ,nompro ,gencod ,coddou ,typpro ,exicot ,codtva ,coduni ,qtemin ,codtax ,codtax2 ,sigdep ,codrea ,suistk ,prostk ,delpre ,suistt ,claabc ,datmar ,poids ,haute ,large ,longue ,volume ,codtar ,design1 ,design2 ,design3 ,typtar ,sigfou ,datmod ,utimod ,refpro ,numvar ,tpsmon ,indcom ,va ,vl ,coduvc ,codue ,nbucue ,pcb ,unipcb ,spcb ,unispcb ,codzn1 ,codzn2 ,codzn3 ,codzn4 ,codzn5 ,codzn6 ,codzn7 ,codzn8 ,codzn9 ,codzn10 ,codzn11 ,codzn12 ,codzn13 ,codzn14 ,codzn15 ,codzn16 ,unicol ,colec1 ,stck1 ,colec2 ,stck2 ,colec3 ,stck3 ,colec4 ,stck4 ,colec5 ,stck5 ,colec6 ,stck6 ,colec7 ,stck7 ,colec8 ,stck8 ,colec9 ,stck9 ,design4 ,design5 ,design6 ,design7 ,design8 ,design9 ,design10 ,design11 ,design12 ,coddev ,codblocage ,poidsnet ,typaff ,qotite ,unista ,prosta ,indcts ,indris ,valpvr ,pdspvr ,volpvr ,numlsk ,codsoc ,delrea ,datcre ,etbcod ,etsstatut ,codconv ,claabcp ,delper ,suiins ,suiice ,nomise ,uniice ,typifa ,uniper ,delgar ,unigar ,achice ,typice ,sigice ,verice ,prorub ,teecod ,teeuni ,teeprx ,modlot ,codpay ,ttaice ,codmdl ,proref ,suiref ,repart ,codunic ,typref ,datfinmar ,natpro ,rglarr ,margemini ,mcalcvc ,nbjcvc ,nivrot ,modappro ,codsoc_phy ,sssfp1 ,sssfp2 ,sssfp3 ,sssfp4 ,sssfp5 ,sssfp6 ,sssfp7 from pro where codsoc = 100 and codpro = '213230002' ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = 'tti' and cletbl = 'PRO' ;
    select typtie ,codefam ,codesfa ,codessf ,libfam ,lirfam ,datmod ,utimod ,codcrb ,famrgt ,typpro ,niveau ,codsoc ,codesssf1 ,codesssf2 ,codesssf3 ,codesssf4 ,codesssf5 ,codesssf6 ,codesssf7 ,clefam from fam where codsoc = 100 and typtie = 'PRO' and niveau = 1 and codefam = '01' and codesfa = ' ' and codessf = ' ' and codesssf1 = ' ' and codesssf2 = ' ' and codesssf3 = ' ' and codesssf4 = ' ' and codesssf5 = ' ' and codesssf6 = ' ' and codesssf7 = ' ' ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = 'trn' and cletbl = '484' ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = 'tti' and cletbl = '050' ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = '050' and cletbl = 'N' ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = 'tti' and cletbl = '051' ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = '051' and cletbl = 'MET' ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = 'tti' and cletbl = '052' ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = '052' and cletbl = 'C' ;
    select codcal ,annee ,numper ,datdeb ,datfin ,codrgp ,datmod ,utimod ,reftro ,codsoc ,p_1capeta ,p_1capnjd ,p_1capnjf ,dat1 ,dat2 ,dat3 ,dat4 ,indano ,indcde ,heulim1 ,delai1 ,heuliv1 ,heulim2 ,delai2 ,heuliv2 ,codtrn ,val01 ,val02 ,val03 ,val04 ,val05 from cap where codsoc = 100 and codcal = 'STK' and annee = 2011 and numper = 257 ;
    select codcal ,annee ,numper ,datdeb ,datfin ,codrgp ,datmod ,utimod ,reftro ,codsoc ,p_1capeta ,p_1capnjd ,p_1capnjf ,dat1 ,dat2 ,dat3 ,dat4 ,indano ,indcde ,heulim1 ,delai1 ,heuliv1 ,heulim2 ,delai2 ,heuliv2 ,codtrn ,val01 ,val02 ,val03 ,val04 ,val05 from cap where codsoc = 100 and codcal = 'STK' and annee = 2011 and numper = 258 ;
    select codcal ,annee ,numper ,datdeb ,datfin ,codrgp ,datmod ,utimod ,reftro ,codsoc ,p_1capeta ,p_1capnjd ,p_1capnjf ,dat1 ,dat2 ,dat3 ,dat4 ,indano ,indcde ,heulim1 ,delai1 ,heuliv1 ,heulim2 ,delai2 ,heuliv2 ,codtrn ,val01 ,val02 ,val03 ,val04 ,val05 from cap where codsoc = 100 and codcal = 'STK' and annee = 2011 and numper = 258 ;
    select fct ,uti ,datact ,heuact ,datdeb ,heudeb ,datfin ,heufin ,page ,st1 ,st2 ,fprint ,batch ,nbi ,forma ,afct ,auti ,numero ,nbc ,dir ,tfc ,automanu ,edit ,maq ,nomprc ,ord ,contin ,code_maq ,datmod ,utimod ,codsoc ,nommaq ,numpere ,codpled ,etape ,posext ,eshs ,nummes ,attr from ut_spl where codsoc = 100 and numero = 2976 ;
    select typtie ,sigtie ,nomtie ,adrcom ,cpttie ,nombqe ,codbqe ,guiche ,cptbqe ,clerib ,coddpt ,modrgl ,delrgl ,codqua ,tauesc ,encmax ,encass ,anccde ,encfac ,enceff ,encenc ,perfac ,nbrfac ,edicot ,facrel ,posfis ,forfai ,editrt ,indsup ,codinc ,datmod ,utimod ,typfac ,famtie ,codbar ,coddev ,sigrep ,siggrp ,codlan ,mincde ,sigdep ,sigtra ,modliv ,relica ,sigach ,propri ,socges ,delrea ,blocliv ,libloc ,surfac ,surfres ,colec ,typtpv ,commer ,machin ,bqedom ,bqetra ,plafon ,fil ,codreg ,modtra ,codzn1 ,codzn2 ,codzn3 ,codzn4 ,codzn5 ,codzn6 ,codzn7 ,codzn8 ,codzn9 ,codzn10 ,codzn11 ,codzn12 ,codzn13 ,codzn14 ,codzn15 ,codzn16 ,codett ,datcre ,typgrp ,typrep ,cnufd ,nbcai ,indcat ,dreftar ,enseigne ,indref ,nbrjour ,numfil ,minfra ,dateve ,p_tietcp ,p_tiesig ,p_3ctcod ,p_3g1cod ,p_3g2cod ,p_3g3cod ,p_3g4cod ,p_3g5cod ,p_ribcodp ,codsoc ,p_tietpa ,p_tiespay ,p_3fccod ,p_tiebap ,p_tieintgr ,p_tielet ,etbcod ,etsstatut ,datexp ,calrea ,p_tiegrp ,moyrgl ,p_tiebim ,datinc ,indtim ,sigtrs ,guidrgl ,telven ,p_tieesc ,achvte_cat ,codcat ,datprc_cde ,nbjcde ,delsec ,codsoc_phy from tie where codsoc = 100 and typtie = 'SOC' and sigtie = 'CEDILAC' ;
    select codsoc ,cpttie ,p_ribcod ,p_ribdev ,p_4bqcbq ,p_4bqgui ,p_ribnom ,p_ribloc ,p_ribcpt ,p_ribcle ,p_ribprinc ,datmod ,utimod ,p_ribtyp ,p_4bqbnk ,p_4bqgch ,p_ribncp ,p_ribcrib ,p_ribdeb ,p_ribfin ,p_ribtitulaire ,bic ,iban from rib where codsoc = 100 and cpttie = 'CEDILAC' and p_ribcod = '001' ;
    select codcal ,annee ,numper ,datdeb ,datfin ,codrgp ,datmod ,utimod ,reftro ,codsoc ,p_1capeta ,p_1capnjd ,p_1capnjf ,dat1 ,dat2 ,dat3 ,dat4 ,indano ,indcde ,heulim1 ,delai1 ,heuliv1 ,heulim2 ,delai2 ,heuliv2 ,codtrn ,val01 ,val02 ,val03 ,val04 ,val05 from cap where codsoc = 100 and codcal = 'STK' and annee = 2011 and numper = 257 ;
    select codcal ,annee ,numper ,datdeb ,datfin ,codrgp ,datmod ,utimod ,reftro ,codsoc ,p_1capeta ,p_1capnjd ,p_1capnjf ,dat1 ,dat2 ,dat3 ,dat4 ,indano ,indcde ,heulim1 ,delai1 ,heuliv1 ,heulim2 ,delai2 ,heuliv2 ,codtrn ,val01 ,val02 ,val03 ,val04 ,val05 from cap where codsoc = 100 and codcal = 'STK' and annee = 2011 and numper = 258 ;
    select codcal ,annee ,numper ,datdeb ,datfin ,codrgp ,datmod ,utimod ,reftro ,codsoc ,p_1capeta ,p_1capnjd ,p_1capnjf ,dat1 ,dat2 ,dat3 ,dat4 ,indano ,indcde ,heulim1 ,delai1 ,heuliv1 ,heulim2 ,delai2 ,heuliv2 ,codtrn ,val01 ,val02 ,val03 ,val04 ,val05 from cap where codsoc = 100 and codcal = 'STK' and annee = 2011 and numper = 258 ;
    select codcal ,annee ,numper ,datdeb ,datfin ,codrgp ,datmod ,utimod ,reftro ,codsoc ,p_1capeta ,p_1capnjd ,p_1capnjf ,dat1 ,dat2 ,dat3 ,dat4 ,indano ,indcde ,heulim1 ,delai1 ,heuliv1 ,heulim2 ,delai2 ,heuliv2 ,codtrn ,val01 ,val02 ,val03 ,val04 ,val05 from cap where codsoc = 100 and codcal = 'STK' and annee = 2011 and numper = 257 ;
    select codcal ,annee ,numper ,datdeb ,datfin ,codrgp ,datmod ,utimod ,reftro ,codsoc ,p_1capeta ,p_1capnjd ,p_1capnjf ,dat1 ,dat2 ,dat3 ,dat4 ,indano ,indcde ,heulim1 ,delai1 ,heuliv1 ,heulim2 ,delai2 ,heuliv2 ,codtrn ,val01 ,val02 ,val03 ,val04 ,val05 from cap where codsoc = 100 and codcal = 'STK' and annee = 2011 and numper = 258 ;
    select codcal ,annee ,numper ,datdeb ,datfin ,codrgp ,datmod ,utimod ,reftro ,codsoc ,p_1capeta ,p_1capnjd ,p_1capnjf ,dat1 ,dat2 ,dat3 ,dat4 ,indano ,indcde ,heulim1 ,delai1 ,heuliv1 ,heulim2 ,delai2 ,heuliv2 ,codtrn ,val01 ,val02 ,val03 ,val04 ,val05 from cap where codsoc = 100 and codcal = 'STK' and annee = 2011 and numper = 258 ;
    select codcal ,annee ,numper ,datdeb ,datfin ,codrgp ,datmod ,utimod ,reftro ,codsoc ,p_1capeta ,p_1capnjd ,p_1capnjf ,dat1 ,dat2 ,dat3 ,dat4 ,indano ,indcde ,heulim1 ,delai1 ,heuliv1 ,heulim2 ,delai2 ,heuliv2 ,codtrn ,val01 ,val02 ,val03 ,val04 ,val05 from cap where codsoc = 100 and codcal = 'STK' and annee = 2011 and numper = 257 ;
    select codcal ,annee ,numper ,datdeb ,datfin ,codrgp ,datmod ,utimod ,reftro ,codsoc ,p_1capeta ,p_1capnjd ,p_1capnjf ,dat1 ,dat2 ,dat3 ,dat4 ,indano ,indcde ,heulim1 ,delai1 ,heuliv1 ,heulim2 ,delai2 ,heuliv2 ,codtrn ,val01 ,val02 ,val03 ,val04 ,val05 from cap where codsoc = 100 and codcal = 'STK' and annee = 2011 and numper = 258 ;
    select codcal ,annee ,numper ,datdeb ,datfin ,codrgp ,datmod ,utimod ,reftro ,codsoc ,p_1capeta ,p_1capnjd ,p_1capnjf ,dat1 ,dat2 ,dat3 ,dat4 ,indano ,indcde ,heulim1 ,delai1 ,heuliv1 ,heulim2 ,delai2 ,heuliv2 ,codtrn ,val01 ,val02 ,val03 ,val04 ,val05 from cap where codsoc = 100 and codcal = 'STK' and annee = 2011 and numper = 258 ;
    select achvte ,typeve ,numeve ,numpos ,commen1 ,commen2 ,commen3 ,commen4 ,commen5 ,commen6 ,commen7 ,commen8 ,commen9 ,commen10 ,numlig ,numspo ,datmod ,utimod ,codnme ,numblo ,tel ,coddoc ,codori ,datcre ,datval ,poids ,poidsnet ,frdtra ,codzn1 ,codzn2 ,codzn3 ,codzn4 ,codzn5 ,codzn6 ,codzn7 ,codzn8 ,codzn9 ,codzn10 ,codzn11 ,codzn12 ,codzn13 ,codzn14 ,codzn15 ,codzn16 ,codzn17 ,codzn18 ,codzn19 ,codzn20 ,coddoc1 ,coddoc2 ,coddoc3 ,coddoc4 ,coddoc5 ,coddoc6 ,coddoc7 ,coddoc8 ,coddoc9 ,volevt ,dattar ,codsoc ,longue ,large ,haute from evt where codsoc = 100 and achvte = 'V' and typeve = 'CDE' and numeve = 1367250 and numpos = 11 and numlig = 0 and numspo = 0 and numblo = 0 ;
    select codtbl ,cletbl ,lib1 ,lib2 ,lib3 ,lir ,num1 ,num2 ,num3 ,dec1 ,dec2 ,dec3 ,datmod ,utimod ,codsoc ,lib4 ,lib5 ,lib6 ,lib7 ,lib8 ,lib9 ,lib10 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9 ,num10 ,dec4 ,dec5 ,dec6 ,dec7 ,dec8 ,dec9 ,dec10 ,dat1 ,dat2 ,dat3 ,dat4 ,dat5 ,dat6 ,dat7 ,dat8 ,dat9 ,dat10 ,filtre_tbl ,z40l_1 ,z40l_2 ,z40l_3 ,z40l_4 ,z40l_5 ,z40l_6 ,z40l_7 ,z40l_8 ,z40l_9 ,z40l_10 from tbl where codsoc = 100 and codtbl = 'tti' and cletbl = 'DEP' ;
    select typtie ,sigtie ,nomtie ,adrcom ,cpttie ,nombqe ,codbqe ,guiche ,cptbqe ,clerib ,coddpt ,modrgl ,delrgl ,codqua ,tauesc ,encmax ,encass ,anccde ,encfac ,enceff ,encenc ,perfac ,nbrfac ,edicot ,facrel ,posfis ,forfai ,editrt ,indsup ,codinc ,datmod ,utimod ,typfac ,famtie ,codbar ,coddev ,sigrep ,siggrp ,codlan ,mincde ,sigdep ,sigtra ,modliv ,relica ,sigach ,propri ,socges ,delrea ,blocliv ,libloc ,surfac ,surfres ,colec ,typtpv ,commer ,machin ,bqedom ,bqetra ,plafon ,fil ,codreg ,modtra ,codzn1 ,codzn2 ,codzn3 ,codzn4 ,codzn5 ,codzn6 ,codzn7 ,codzn8 ,codzn9 ,codzn10 ,codzn11 ,codzn12 ,codzn13 ,codzn14 ,codzn15 ,codzn16 ,codett ,datcre ,typgrp ,typrep ,cnufd ,nbcai ,indcat ,dreftar ,enseigne ,indref ,nbrjour ,numfil ,minfra ,dateve ,p_tietcp ,p_tiesig ,p_3ctcod ,p_3g1cod ,p_3g2cod ,p_3g3cod ,p_3g4cod ,p_3g5cod ,p_ribcodp ,codsoc ,p_tietpa ,p_tiespay ,p_3fccod ,p_tiebap ,p_tieintgr ,p_tielet ,etbcod ,etsstatut ,datexp ,calrea ,p_tiegrp ,moyrgl ,p_tiebim ,datinc ,indtim ,sigtrs ,guidrgl ,telven ,p_tieesc ,achvte_cat ,codcat ,datprc_cde ,nbjcde ,delsec ,codsoc_phy from tie where codsoc = 100 and typtie = 'DEP' and sigtie = '99' ;
    select typtie ,sigtie ,nomtie ,adrcom ,cpttie ,nombqe ,codbqe ,guiche ,cptbqe ,clerib ,coddpt ,modrgl ,delrgl ,codqua ,tauesc ,encmax ,encass ,anccde ,encfac ,enceff ,encenc ,perfac ,nbrfac ,edicot ,facrel ,posfis ,forfai ,editrt ,indsup ,codinc ,datmod ,utimod ,typfac ,famtie ,codbar ,coddev ,sigrep ,siggrp ,codlan ,mincde ,sigdep ,sigtra ,modliv ,relica ,sigach ,propri ,socges ,delrea ,blocliv ,libloc ,surfac ,surfres ,colec ,typtpv ,commer ,machin ,bqedom ,bqetra ,plafon ,fil ,codreg ,modtra ,codzn1 ,codzn2 ,codzn3 ,codzn4 ,codzn5 ,codzn6 ,codzn7 ,codzn8 ,codzn9 ,codzn10 ,codzn11 ,codzn12 ,codzn13 ,codzn14 ,codzn15 ,codzn16 ,codett ,datcre ,typgrp ,typrep ,cnufd ,nbcai ,indcat ,dreftar ,enseigne ,indref ,nbrjour ,numfil ,minfra ,dateve ,p_tietcp ,p_tiesig ,p_3ctcod ,p_3g1cod ,p_3g2cod ,p_3g3cod ,p_3g4cod ,p_3g5cod ,p_ribcodp ,codsoc ,p_tietpa ,p_tiespay ,p_3fccod ,p_tiebap ,p_tieintgr ,p_tielet ,etbcod ,etsstatut ,datexp ,calrea ,p_tiegrp ,moyrgl ,p_tiebim ,datinc ,indtim ,sigtrs ,guidrgl ,telven ,p_tieesc ,achvte_cat ,codcat ,datprc_cde ,nbjcde ,delsec ,codsoc_phy from tie where codsoc = 100 and typtie = 'DEP' and sigtie = '99' ;
    select achvte ,typeve ,numeve ,numpos ,codpro ,qtecde ,codtva ,codreg ,codbar ,coduni ,prxtav ,prxbrt ,typrem ,ristou ,taurem1 ,taurem2 ,taurem3 ,prxvdu ,prxbas ,prxfrc ,exilig ,exicvc ,exitxt ,typevo ,numevo ,numpoo ,codtax ,datmod ,utimod ,codva1 ,codva2 ,prxrev ,libcom ,sigrep ,codana ,codana1 ,codana2 ,prkit ,pvkit ,achvto ,prxrevcom ,taucom ,achvts ,typevs ,numevs ,numposs ,cptgen ,disponib ,sigmag ,primpro ,qtegrt ,qtegrtliv ,unifac ,qteperdu ,qteliv ,ordevs ,qteuf ,prxuf ,coduf ,codsoc ,codass ,delpro ,delneg ,mtdroit ,txdroit ,tauca ,codfis ,indris ,tax1 ,tax2 ,achice ,typice ,sigice ,verice ,numpos_ice ,prxpvc ,coef ,codics ,codics2 ,typpst ,codpay ,codlit ,achvte_cat ,codcat ,refext ,numcnt ,prxtavfac ,prxbrtfac ,prxpvp ,prxpvg ,codeop ,statut6 from evp where codsoc = 100 and achvte = 'V' and typeve = 'CDE' and numeve = 1367250 and numpos = 11 ;
    select codcal ,annee ,numper ,datdeb ,datfin ,codrgp ,datmod ,utimod ,reftro ,codsoc ,p_1capeta ,p_1capnjd ,p_1capnjf ,dat1 ,dat2 ,dat3 ,dat4 ,indano ,indcde ,heulim1 ,delai1 ,heuliv1 ,heulim2 ,delai2 ,heuliv2 ,codtrn ,val01 ,val02 ,val03 ,val04 ,val05 from cap where codsoc = 100 and codcal = 'STK' and annee = 2011 and numper = 257 ;
    select codcal ,annee ,numper ,datdeb ,datfin ,codrgp ,datmod ,utimod ,reftro ,codsoc ,p_1capeta ,p_1capnjd ,p_1capnjf ,dat1 ,dat2 ,dat3 ,dat4 ,indano ,indcde ,heulim1 ,delai1 ,heuliv1 ,heulim2 ,delai2 ,heuliv2 ,codtrn ,val01 ,val02 ,val03 ,val04 ,val05 from cap where codsoc = 100 and codcal = 'STK' and annee = 2011 and numper = 258 ;
    select codcal ,annee ,numper ,datdeb ,datfin ,codrgp ,datmod ,utimod ,reftro ,codsoc ,p_1capeta ,p_1capnjd ,p_1capnjf ,dat1 ,dat2 ,dat3 ,dat4 ,indano ,indcde ,heulim1 ,delai1 ,heuliv1 ,heulim2 ,delai2 ,heuliv2 ,codtrn ,val01 ,val02 ,val03 ,val04 ,val05 from cap where codsoc = 100 and codcal = 'STK' and annee = 2011 and numper = 258 ;
    On ne jouit bien que de ce qu’on partage.

  9. #9
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    Vrai et Faux! Pour du CRUD
    Pour du CRUD, je dis pas... Mais est-ce vraiment le type de requêtes qui demande de l'attention au niveau des performances et de la maintenabilité ?
    A noter d'ailleurs que CommandBuilder fait très bien son travail pour faire du CRUD, et du coup ne demande pas de code plus complexe qu'avec Linq.
    On ne jouit bien que de ce qu’on partage.

  10. #10
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par lolo_momo Voir le message
    En faite, mon projet consiste à créer un générateur de questionnaires dynamique.

    Il y aura 3 acteurs :

    Administrateur : Celui qui va créer lles questions et les réponses
    Chefs d'équipes : Ceux qui vont affecter les questions aux questionnaires selon les produits / les agents
    Agents : Ceux qui vont remplir ces formulaires


    J'ai opté pour le C# comme langage de développement et le WPF pour ce qui est de la présentation.
    Ma base de données est une base de données SQL Server 2008.

    Je suis amené à avoir un très bon résultat niveau performances. L'application devra gérer environ 500 utilisateurs. (2 Admin + 50 Chefs de projets + 400 Agents)
    Les utilisateurs pourront êtres connectés en même temps.

    J'ai consulté le lien que tu m'a donné http://immobilis.developpez.com/tuto...ity-framework/ concernant des méthodes d'accès. ( merci )

    Si j'ai bien compris, LinQ to SQL ainsi que l'Entity Framework (EF) sont des ORM. Du coup il faut vraiment optimiser soit les requetes LinQ soit l'Entity Framework avec des procédures stockés.

    - Un expert en .Net m'a conseillé de travaillé avec LinQ sans oublier l'optimisation en me précisant qu'avec les optimisations nécessaires, le temps de réponse revient au même que celui des requêtes SQL.
    - Un connaisseur en SQL Server 2008 m'a conseillé de travailler avec l'EF en optimisant du coté de la BD.
    - Un autre developeur .Net m'a conseillé de travailler simplement avec des requêtes SQL.

    Je n'ai pas optimisé de requêtes de BD auparavant. Ca ne me dérange pas d'apprendre ça bien au contraire. Mais est ce vraiment utile? Ne serait - ce t'il pas une perte de temps?

    Du coup je penche plutot vers la dernière solution (requêtes SQL) vu que là, je n'aurais pas le souci d'optimisation des ORM.

    Qu'en pensez vous?
    Comme dit dans mon message plus haut, la génération d'une requête SQL a partir de LINQ est totalement déterministe. Tu peux l'intercepter avec le profiler SQL et travailler dessus avec un DBA (index, partitionnement, etc).
    Choisir d'utiliser des procédures stockées, ca n'est pas forcément un choix de performance c'est surtout un choix d'architecture qui implique de déporter de la logique métier du code .Net vers la base.

    Et c'est pas parcequ'on utilise un ORM que les perfs sont mauvaises (bon après encore faut il utiliser correctement l'ORM)...

  11. #11
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Le problème avec Linq, c'est qu'on a du mal à savoir (et je pense qu'on n'est jamais sûr à 100%)* la requête qui a réellement être utilisée. Impossible donc pour un DBA de te faire utiliser des hints de table par exemple, ni d'adapter les index en fonction du plan d'exécution de la requête... puisque pour ça, il faudrait déjà connaître la requête !
    Ca c'est faux, je le dis depuis plusieurs message, c'est totalement déterministe.
    Pour les hints, ca c'est une autre histoire.

  12. #12
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    En effet c'est déterministe.
    Mais on peut apporter une modification basique à la requête Linq sans se rendre compte que la requête derrière sera chamboulée.
    Si les requêtes SQL sont écrites en toute lettre, je trouve qu'on maîtrise mieux ce qu'on fait.
    Après, c'est peut-être une question d'habitude et de sensibilisation des différents acteurs du projet.
    On ne jouit bien que de ce qu’on partage.

  13. #13
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 177
    Points : 4 489
    Points
    4 489
    Par défaut
    Citation Envoyé par lolo_momo Voir le message
    Je n'ai pas optimisé de requêtes de BD auparavant. Ca ne me dérange pas d'apprendre ça bien au contraire. Mais est ce vraiment utile? Ne serait - ce t'il pas une perte de temps?
    Premiere optimisation les Index, et les foreign key
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  14. #14
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    L'optimisation est une perte de temps lorsqu'il s'agit d'une petite application utilisée par très peu de personnes, et que le volume d'information est faible.

    Mais rapidement (et selon les SGBD, c'est plus ou moins tôt), il devient très important de soigner l'écriture des requêtes, respecter les normes de modélisation, et placer les bons index et contraintes là où il y en a besoin.

    A noter qu'une simple modification anodine dans une requête permet de passer de plusieurs minutes de traitement à quelques millièmes pour obtenir le même résultat !

    Un exemple simple, avec une table utilisée à mon travail :

    EVE (codsoc, achvte, typeve, numeve, codeta, sigval, datval)

    J'ai la demande : afficher les numeve validés par l'utilisateur X le jour Y.

    Bêtement, je vais faire :
    select numeve from eve where sigval = X and datval = Y
    => Dans 3 jours, la requête n'aura pas terminé, car ni sigval ni datval ne sont indexés.

    Deux solutions : le crée un index comme un bourrin (et j'alourdi l'ensemble de la base de données), ou alors je me dis "maintenant, je réfléchis".

    Ok, mon utilisateur est déclaré dans la société Z. Et les événements qu'il gère sont des commandes de vente... Ah, et s'il les a validées, leur état est forcément à V ou S... (règles fonctionnelles)

    Du coup, la requête devient :
    select numeve from eve where codsoc = Z and achvte = 'V' and typeve = 'CDE' and codeta in ('S', 'V') and sigval = X and datval = Y

    Je tape alors dans la clé primaire (codsoc, achvte, typeve, numeve) : la requête dure quelques millièmes de secondes, sans pour autant que j'aie changé quoi que ce soit à le structure de la base.
    Et en terme de travail, ça m'a pris 5 minutes pour vérifier les règles de gestion de ma table pour déduire les champs supplémentaires membres d'index que je pouvait utiliser.
    On ne jouit bien que de ce qu’on partage.

  15. #15
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Si tu veux insinuer que réfléchir avant d'agir, c'est bien, je pense que tu vas vers le consensus ! xD
    One minute was enough, Tyler said, a person had to work hard for it, but a minute of perfection was worth the effort. A moment was the most you could ever expect from perfection.

    -- Chuck Palahniuk, Fight Club, Chapter 3 --

Discussions similaires

  1. formulation requête sql->linq..
    Par allan0101 dans le forum Linq
    Réponses: 1
    Dernier message: 03/11/2010, 00h48
  2. [AC-2003] Choix type de requête ?
    Par laurent35 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 26/04/2010, 21h36
  3. Réponses: 1
    Dernier message: 21/01/2010, 14h21
  4. Réponses: 0
    Dernier message: 29/10/2009, 16h22
  5. Réponses: 1
    Dernier message: 09/03/2007, 15h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo