OVH Cloud OVH Cloud

Plantage du serveur a l'execution d'une fonction dans l'analyseur de requete

5 réponses
Avatar
loccitan
Bonjour,
j'ai une fonction définie par l'utilisateur .
Voici son code :

CREATE FUNCTION Quantite_pendant(@art_id int ,@periode_deb int,@periode_fin
int) RETURNS int AS
-- periode_deb et periode_fin Annee*100+Mois (pour faciliter les
comparasions
BEGIN
declare @Qte int
select @Qte=sum(MENS_VENTES_NETTES) from mensuel where ( mens_Art_id=
@art_id)
and ((MENS_ANNEE*100)+MENS_MOIS between @periode_deb and @periode_fin)
return (@Qte)
END


Lors de son appel :
select dbo.quantite_pendant(Art_id,200301,200312) from articles

Chez moi avec le SQLSERVEUR service pack3a ça fonctionne tres bien, chez mon
client
SQLSERVEUR pack1 (Je crois) dans l'analyseur de requete il a une erreur qui
plante le serveur sql.

[Microsoft][ODBC SQL SERVER Driver][Shared Memory]
ConnectionCheckForData((CheckforData()).
Serveur : Msg 11,Niveau 16 Etat 1, ligne 0
Erreur réseau générale. Consultez la documentation relative à votre réseau
Connexion interrompue




Est ce du a nos différentes versions ?
Mon code est il tout pourri ?
Y a t'il quelque chose dans les parametrages de nos serveurs ?

Merci


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.772 / Virus Database: 519 - Release Date: 01/10/2004

5 réponses

Avatar
Sylvain Lafontaine
Je ne peux pas dire que la faute en soit au SP1 dans votre cas, cependant
cela fait une éternité que j'ai arrêté d'essayer de résoudre des problèmes
sur des machines qui n'avaient pas les derniers services packs d'installés.

Cependant, en faisant la commande: select @@version; vous devriez pouvoir
vérifier si le deuxième serveur est bel et bien en manque de service packs.

S. L.

"loccitan" wrote in message
news:
Bonjour,
j'ai une fonction définie par l'utilisateur .
Voici son code :

CREATE FUNCTION Quantite_pendant(@art_id int ,@periode_deb
int,@periode_fin
int) RETURNS int AS
-- periode_deb et periode_fin Annee*100+Mois (pour faciliter les
comparasions
BEGIN
declare @Qte int
select @Qte=sum(MENS_VENTES_NETTES) from mensuel where ( mens_Art_id > @art_id)
and ((MENS_ANNEE*100)+MENS_MOIS between @periode_deb and @periode_fin)
return (@Qte)
END


Lors de son appel :
select dbo.quantite_pendant(Art_id,200301,200312) from articles

Chez moi avec le SQLSERVEUR service pack3a ça fonctionne tres bien, chez
mon
client
SQLSERVEUR pack1 (Je crois) dans l'analyseur de requete il a une erreur
qui
plante le serveur sql.

[Microsoft][ODBC SQL SERVER Driver][Shared Memory]
ConnectionCheckForData((CheckforData()).
Serveur : Msg 11,Niveau 16 Etat 1, ligne 0
Erreur réseau générale. Consultez la documentation relative à votre réseau
Connexion interrompue




Est ce du a nos différentes versions ?
Mon code est il tout pourri ?
Y a t'il quelque chose dans les parametrages de nos serveurs ?

Merci


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.772 / Virus Database: 519 - Release Date: 01/10/2004




Avatar
loccitan
Oui il l'est il n'y a aucun doute, pour des raisons X ou Y le client n'est
pas pret pour passer à la derniere Version.



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.772 / Virus Database: 519 - Release Date: 01/10/2004
Avatar
Sylvain Lafontaine
Deux solutions possibles:

1- Vérifier que les tables ont toutes été crées avec l'utilisateur dbo.
et préciser dbo. dans la désignation de votre table dans la fonction.

2- Ou remplacer votre fonction par une sous-requête.

S. L.

"loccitan" wrote in message
news:%23O$
Oui il l'est il n'y a aucun doute, pour des raisons X ou Y le client n'est
pas pret pour passer à la derniere Version.



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.772 / Virus Database: 519 - Release Date: 01/10/2004




Avatar
loccitan
> 2- Ou remplacer votre fonction par une sous-requête.



C'est ce que je m'apprete à faire mais j'ai d'autres fonctions similaires a
d'autres endroits du projet qui ne font pas planter l'analyseur de requete
:)




---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.772 / Virus Database: 519 - Release Date: 01/10/2004
Avatar
Fred Pichaut
On peut vérifier si c'est un problème connu fixé post SP1

Lorsque vous avec un message comme « Connexion interrompue » il est bon de
récupérer le « Short Stack Dump » qui doit être dans l'errorlog.





"loccitan" wrote in message
news:

> 2- Ou remplacer votre fonction par une sous-requête.

C'est ce que je m'apprete à faire mais j'ai d'autres fonctions similaires


a
d'autres endroits du projet qui ne font pas planter l'analyseur de requete
:)




---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.772 / Virus Database: 519 - Release Date: 01/10/2004