Bonjour,
J'ai un souci avec une procédure stockée sous SQLSERVER 2005 .
Le contexte : j'ai 2 tables contenant respectivement des entêtes et lignes de commandes.
CREATE TABLE [dbo].[GCPEBL](
[IDENT] [int] IDENTITY(1,1) NOT NULL,
[NUMERO_DOC] [char](10) NULL,
...
[DATE_BL] [datetime] NULL,
...
CREATE TABLE [dbo].[GCPLBL](
[IDENT] [int] IDENTITY(1,1) NOT NULL,
[NUMERO] [char](17) NULL,
...
[DATE_BL] [datetime] NULL,
...
Le lien entre la première et la seconde table se fait par [NUMERO_DOC] et [NUMERO] :
pour la commande 51, [GCPEBL].[NUMERO_DOC] = '51', et [GCPEBL].[NUMERO] = '51|'+numéro de ligne de commande => '51|1', '51|2', '51|3'...
Ci-dessous ma procédure stockée pour mettre à jour les [DATE_BL] des 2 tables pour un enregistrement donné :
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER Procedure [dbo].[SPw_UpdateBLValide]
@sEnTeteCommande char(10),
@dt datetime
AS
IF @sEnTeteCommande <> '0'
BEGIN
UPDATE dbo.GCPEBL
SET DATE_BL = @dt
WHERE NUMERO_DOC = RTRIM(@sEnTeteCommande)
UPDATE dbo.GCPLBL
SET DATE_BL = @dt
WHERE NUMERO LIKE RTRIM(@sEnTeteCommande) + '|%'
END
La procédure est on ne peut plus basique.
Dans un premier temps, j'ai pensé que le problème venait de SQLSERVER, mais aujourd'hui, je n'en suis plus si sûr : quand j’exécute la procédure directement dans SQLSERVER, elle fonctionne.
Quand je passe par le site web, écrit en ASP (ASP, pas ASP.NET) sous IIS, cette procédure ne met pas à jour la première table alors que la seconde table est mise à jour ...
J'ai testé mes critères de sélection : je les utilise dans de nombreuses autres procédures et ça fonctionne très bien, mais pas pour cette procédure... Je ne sais pas ce qu'elle a de différent des autres procédures, n'empêche qu'elle ne fonctionne pas et que je me casse la tête dessus depuis beaucoup trop longtemps !
Le fait que la moitié de la procédure fonctionne me rend dingue : j'ai besoin de comprendre pourquoi!!
La moindre idée ou soupçon d'idée est la bienvenue . Et merci déjà de m'avoir lu.
Message édité par alexbaba le 19-01-2013 à 12:26:57