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 :

[ASE][T-SQL]Timeout sur procedure stockee


Sujet :

Sybase

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut [ASE][T-SQL]Timeout sur procedure stockee
    Bonjour,

    Voila mon probleme, je dois executer en C++ une procedure stockee et l'interompre si elle met trop de temps.
    J'ai donc passé un timeout dans le context pour sortir au bout d'un certain temps. Cela fonctionne bien avec la procedure suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    create procedure coyr_test_timeout
    as
     
    waitfor delay "00:01:10:000"
    return 0
    Par contre avec une boucle infinie cela ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE PROCEDURE coyr_test_timeout_while  
    AS 
     
    declare
            @error int
     
    while 1 <> 2
    begin
      select @error = @@error
    end
     
    return 0
    Le programme bloque sur la recuperation du resultat.

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 567
    Points
    19 567
    Billets dans le blog
    25
    Par défaut
    Ben... la boucle infinie, comme son nom l'indique, est infinie... donc pas de sortie de la SP...

  3. #3
    Membre chevronné

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Pour que le timeout puisse marcher il faut que la connexion soit en mode "read", cad que la proc soit dans un WAITFOR, ou qu'elle soit en train de retourner des données vers le client (y compris dans un SELECT très complexe qui n'a pas encore commencé à retourner de données).

    L'alternative est d'utiliser un signal (du style SIG_ALRM), mais il faut dans ce cas prendre en compte la problématique multi-threading si nécessaire (lire la documentation sur la gestion des signaux dans le manuel de programmation OpenClient Client Library Reference Manual)

    Michael

  4. #4
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Merci.

    J'ai armé un timer et je ferme ma connexion par un ct_close.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Procedure stockee, Lock et TimeOut SQL Server 2005
    Par sebisebo dans le forum Développement
    Réponses: 1
    Dernier message: 28/01/2010, 15h43
  2. Réponses: 5
    Dernier message: 23/10/2007, 14h58
  3. Access et les procedures stockees sur sql server
    Par ouazou dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 20/09/2005, 13h08
  4. help sur le code d'une procedures stockee
    Par omlip dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 25/08/2004, 18h45
  5. procedure stockee et sql
    Par fred33 dans le forum SQL
    Réponses: 2
    Dernier message: 27/11/2003, 10h23

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