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

Sybase Discussion :

récupérer la valeur définie par un set rowcount n


Sujet :

Sybase

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut récupérer la valeur définie par un set rowcount n
    Bonjour,

    Je recherche à récupérer la valeur qui serait actuellement définie précedement par un set rowcount n

    Vous remerciant par avance

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    D'après la doc 15:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select @@setrowcount
    mais un petit essai montre que cela ne marche pas en 12.5.3 ni en 12.5.4.

    Je ne sais pas si il y a une autre technique...

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut ...dommage...
    Nous n'allons pas migrer vers 15x avant un petit bout de temps. je vais devoir trouver une autre sollution.
    Notre problème est qu'un individu peux scrupuleux a utiliser des set rowcount pour limiter le nombre d'enregistrements visibles dans une classe d'affichage et que cette limitation est propagée bien évidemment tout au long des éventuelles procédures exécutées pour l'affichage ce qui conduit à des résultats incohérents. Mon idée palliative était de stocké en début de traitement le rowcount sollicité par la classe, faire un rowcount 0 puis remettre le rowcount sollicité sur la partie qui restitue les datas. Je pense que je vais faire un select 1 sur une table de référence dont je connais la grande longueur et regarder le nombre d'enregistrements retourné... pas fabuleux, mais en attendant de retouchez les classes de visualisation de notre appli...

    Michael, l'occasion pour moi de vous remerciez pour les informations publiées sur l'installation de ase sur linux qui m'ont bien aidé il y a quelques années déjà.

    Sébastien.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Merci...

    La seule chose que j'ai trouvée c'est la variable globale @@options qui a un flag qui peut être testée pour voir si le SET ROWCOUNT est actif:
    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
     
    [25] ADV.master.1> set rowcount 1000;
    [26] ADV.master.1> select @@options;
     
     ----------------------
       0x80211000000f014403
     
    (1 row affected)
    [27] ADV.master.1> set rowcount 0;
    [28] ADV.master.1> select @@options;
     
     ----------------------
       0x80210000000f014403
     
    (1 row affected)
    [29] ADV.master.1>
    mais cela ne donne quand même pas la valeur qui a été positionnée...

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    Avec la 12.5, Vous pouvez récupérer la valeur du SET ROWCOUNT imposé à la dernière requête utilisée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE @nb_row int
    SELECT  @nb_row = @@ROWCOUNT
    Attention, si le rowcount a été fixé à 10 par exemple, et que la requête ne ramène que 8 lignes, @nb_row vaudra 8.
    Si la requête ramène plus que 10 lignes, @nb_row vaudra 10.

  6. #6
    Candidat au Club
    Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    En partant de la procédure sp_helpoptions

    Voici une requête renvoyant les différentes options activées:

    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
     
    declare @high_bits int
    declare @low_bits int
    select @high_bits = convert(int,substring(@@options,1,4))
    select @low_bits = convert(int,substring(@@options,5,4))
     
    if (@high_bits & 268435456 = 268435456 )    print 'showplan is on'             else print 'showplan is off'
    if (@high_bits & 32768 = 32768)             print 'nocount is on'              else print 'nocount is off'
    if (@high_bits & 4096 = 4096)               print 'rowcount is on'             else print 'rowcount is 0'
    if (@high_bits & -2147418112 = -2147418112) print 'arithabort is on'           else print 'arithabort is off'
    if (@high_bits & 1073741824 = 1073741824)   print 'arithignore is on'          else print 'arithignore is off'
    if (@high_bits & 1073741824 = 1073741824)   print 'arithignore arith_overflow' else print 'arithignore arith_overflow off'
    if (@high_bits & 32 = 32)                   print 'close on endtran is on'     else print 'close on endtran is off'
    if (@low_bits & 33554432 = 33554432)        print 'ansinull is on'             else print 'ansinull is off'
    if (@low_bits & 536870912 = 536870912)      print 'ansi_permissions is on'     else print 'ansi_permissions is off'
    -- Note: if 'noexec' or 'parseonly' were on, this procedure could not run,
    print 'noexec is off'    -- so no test is necessary.
    print 'parseonly is off.'-- so no test is necessary.
    go
     
    (1 row affected)
    (1 row affected)
    showplan is off
    nocount is off
    rowcount is 0
    arithabort is on
    arithignore is off
    arithignore arith_overflow off
    close on endtran is off
    ansinull is off
    ansi_permissions is off
    noexec is off
    parseonly is off.

Discussions similaires

  1. [MySQL] Récupérer les valeurs définies dans un champ ENUM
    Par Huntress dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/07/2010, 18h55
  2. Comment récupérer des valeur séparé par ; ?
    Par Nico128 dans le forum Delphi
    Réponses: 12
    Dernier message: 14/01/2007, 12h42
  3. Récupérer la valeur envoyée par la fonction shell
    Par cestimagik dans le forum Général VBA
    Réponses: 3
    Dernier message: 05/01/2007, 19h43
  4. [Conception] Faire une somme de valeurs définies par une boucle
    Par fixbraun dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 25/09/2006, 23h46
  5. Réponses: 1
    Dernier message: 31/07/2006, 13h54

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