begin process at 2008 08 08 22:43:11
1 223 628 membres
385 nouveaux aujourd'hui
14 230 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème de gestion des signets après execution d'une procédure stockée [ SQL Server, MSDE, SQL Express / Procédures Stockées ] (bl0nd1)

Problème de gestion des signets après execution d'une procédure stockée le 24/04/2008 13:08:05

bl0nd1
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

GO



Au 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 ;)

Re : Problème de gestion des signets après execution d'une procédure stockée le 24/04/2008 15:21:42

bl0nd1
Réponse acceptée !
bon, aprés des heures de recherche intensive et de prise de tete j'ai enfin trouvé la solution qui etait finalement toute bête comme l'indique le message d'erreur ASP !

LA SOLUTION
Rajouter simplement le parametre avant rs.open :
rs.CursorLocation = adUseClient

Et voilà une belle auto-réponse ;)


Classé sous : table, stockée, procedure, procédure, signets

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS