Précédent   Forum des professionnels en informatique > Bases de données > Sybase
Sybase Forum sur la base de données Sybase. Avant de poster -> F.A.Q Sybase, Tutoriels Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/10/2006, 15h21   #1
Invité de passage
 
Inscription : octobre 2005
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 7
Points : 3
Points : 3
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 :
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 :
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
Le Tchetche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 21h34   #2
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

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

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Ben... la boucle infinie, comme son nom l'indique, est infinie... donc pas de sortie de la SP...
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql
Administrateur SAP
Mes articles

Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2006, 08h18   #3
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
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
__________________
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
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2006, 11h05   #4
Invité de passage
 
Inscription : octobre 2005
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 7
Points : 3
Points : 3
Merci.

J'ai armé un timer et je ferme ma connexion par un ct_close.
Le Tchetche est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h55.


 
 
 
 
Partenaires

Hébergement Web