Bonjour,

J'ai un problème qui viens certainement de Business Objects, mais j'aimerais comprendre pourquoi j'ai tout un paquet d'instruction SQL et pourquoi ça ne marche pas.

Je m'explique, je veux exécuter ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
SELECT
 V_DIM_PRO_LIB.PRO_C_PRO,
 V_DIM_PRO_LIB.PRO_LABEL
FROM
  V_DIM_PRO_LIB
La requête est générée par BO et le préfixe (SET...) à été défini dans les paramètres de connexion. Ce qui me semble correct.
Dans le profiler je vois ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
SET NO_BROWSETABLE ON
--
declare @p1 int
set @p1=1
exec sp_prepare @p1 output,NULL,N'SET DATEFORMAT YMD',1
select @p1
--
exec sp_execute 1
--
exec sp_unprepare 1
--
SET NO_BROWSETABLE OFF
--
declare @p1 int
set @p1=2
exec sp_prepexec @p1 output,NULL,N'SET TRANSACTION ISOLATION LEVEL SNAPSHOT'
select @p1
--
exec sp_unprepare 2
--
SET NO_BROWSETABLE ON
--
declare @p1 int
set @p1=3
exec sp_prepare @p1 output,NULL,N'SELECT
 V_DIM_PRO_LIB.PRO_C_PRO,
V_DIM_PRO_LIB.PRO_LABEL
FROM
  V_DIM_PRO_LIB
',1
select @p1
--
exec sp_execute 3
--
exec sp_unprepare 3
Il n'y a pas de doc sur les procédures sp_xxx ni sur SET NO_BROWSETABLE
BO, ne peut pas afficher le snapshot et se bloque.
Je ne peux pas exécuter le code tel quel dans Management Studio, mais celui là fonctionne correctement et donne bien l'état Snapshot:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
SET NO_BROWSETABLE ON
SET DATEFORMAT YMD
SET NO_BROWSETABLE OFF 
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
SET NO_BROWSETABLE ON
SELECT
 V_DIM_PRO_LIB.PRO_C_PRO,
 V_DIM_PRO_LIB.PRO_LABEL
FROM
  V_DIM_PRO_LIB
Est ce que quelqu'un sait ou a une idée pourquoi le lot d'instruction BO ne fonctionne pas alors que celui de management Studio marche bien?
Est-ce que quelqu'un peut me dire ce qu'est :
SET NO_BROWSETABLE ON
sp_prepare
sp_execute
sp_unprepare
sp_prepexec ?
(Je suppose que qu'il s'agit de procédures pour des requêtes pré-compilées)

Merci