Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
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 14/10/2011, 01h06   #1
 
Inscription : novembre 2008
Messages : 104
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 104
Points : -8
Points : -8
Par défaut Expiration du delai d attente

Bonjour,

Dans un trigger AFTER INSERT, un curseur est ouvert.
Le traitement dans le curseur est sous forme d'une procédure ayant deux paramètres (dateDebut, dateFin) de type DATETIME.
Les deux dates sont récupérées à partir de l INSERTED, cad, ces dates sont saisies à partir d’un écran d’une application.
Le traitement permet de calculer des valeurs et d’insérer des nouvelles instances dans une autre table. Le nombre d’instances insérés égale aux nombres de jours entre les dates en paramètres.
Question:
• Si les deux dates sont proches, le traitement se déroule d'une manière correcte.
• Sinon (cad date fin n’est pas proche de date début, exemple date fin=date début+12mois)
Un message d’erreur apparaît indique l’expiration du délai d’attente.

Voici une partie de message d’erreur :
« Expiration du délai d’attente. Le délai d’attente s’est écoulé avant la fin de l’opération ou le serveur ne répond pas.
Avertissement : La valeur NULL est éliminée par un agrégat ou par une autre opération SET »(plusieurs fois)

J ai pas arrivé à comprendre l’origine de ce message, est ce que un problème de codage de trigger ou de paramétrage de serveur base des données sachant que la version de serveur est SQL2008R2.
haykelFST est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 08h37   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Lors de la connexion de vote application vous avez une paramètre qui est le timeout de réponse, voir le time out de query
Click to View Search Results for SQL - Recherche Google SQL - Recherche Google
Le problème est qu'utiliser un curseur dans un trigger est particulièrement contre performant. Il faut faire des requêtes SQL.
Dans votre cas, il faut ajouter une table de calendrier à votre base afin de générer ces dates de manière ensembliste.
Lisez ceci : http://sqlpro.developpez.com/cours/gestiontemps/

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2011, 08h13   #3
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Vous utilisez ADO.NET?
Vous pouvez régler le CommandTimeOut(par défaut 30 secondes...) sur votre SqlCommand/OleDbCommand oi IdbCommand.

Mais suivez les conseils de SQLPRO et refaites votre TRIGGER...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h13.


 
 
 
 
Partenaires

Hébergement Web