Tout d'abord bonjour à tous,
je rencontre un problème assez génant lors de la lecture de mes resultats (à l'aide d'une page ASP) provenant d'un procédure stockée, voici mon problème en détail :
J'appel une procédure qui me renvoie une table de résultats comme indiqué ci-dessous :
CREATE PROCEDURE [dbo].[p_ma_procedure]
--mes parametres
AS
BEGIN
-- Utilisation de table temporaire
CREATE TABLE #tmp (
-- bla bla
)
-- Requete de selection de mes données
DECLARE @req varchar(8000)
-- Execute une requete et l'insert en base temporaire
INSERT INTO #tmp
EXEC(@req)
-- Je retourne les resultats contenus ds ma table temp.
SELECT * FROM #tmp
-- Supprime ma table
DROP TABLE #tmp
GOAu final je souhaite utiliser ma procedure avec gestion de signets (gestion de pages de resultats) dans ma page asp afin de gérer les pages de résultats comme suit :
<%
Set rs = server.createobject("ADODB.Recordset")
'Activation des signets (3 resultats souhaités par page)
rs.PageSize = 3
rs.open "EXEC dbo.p_ma_procedure 'mesparametres'",ma_connexion, 1
%>
<%
'AFFICHAGE DES RESULTATS
while not rs.eof
'Affichage de la première page
rs.AbsolutePage = 1
%>
<%= rs(0) %>
<%
rs.movenext
WEnd
%>Malheureusement avec une requete classique (sans procedure) cela fonctionne bien mais dans ce cas j'obtiens l'erreur asp suivante:
ADODB.Recordseterror '800a0cb3'
Le jeu d'enregistrements en cours ne prend pas en charge les signets. Il s'agit peut-être d'une limitation du fournisseur ou du type de curseur sélectionné.
Je précise que je dois absolument passé par ma procédure stockée, je ne peux donc pas utiliser une fonction retournant une table car je travail avec des tables temporaires.
J'ai egalement tester la lecture avec un objet ADODB.command et le résultat est le même !
Ma question est finalement toute simple: "
Comment utiliser des signets sur les résultats d'une procédure stockée ?"
Je n'ai peut être pas connaissance d'un paramètre à spécifier en SQL ou en ASP... ou ceci est peut etre impossible mais j'en doute.
je compte donc sur une réponse experte pour m'éclairer !
Merci d'avance pour votre aide ;)