2017-08-16 3 views
0

Comment les données sont-elles récupérées via une source de données de procédure stockée lorsqu'un rapport est affiché dans le serveur Business Objects? Il semble récupérer des données quand n'importe quel type d'instruction "SELECT" est exécuté. Mais d'autres instructions DML dans une procédure stockée, comme l'insertion dans une table, sont ignorées. Lorsqu'une application appelle une procédure stockée, elle fonctionne dans son intégralité. Mais avec Crystal Reports dans le serveur BO, il semble que cela supprime le code de récupération de données et s'exécute tout en ignorant les autres instructions DML.Sources de données de procédure stockée dans le serveur Business Objects

CREATE PROCEDURE dbo.ExampleTestBlahBlah 
AS 
BEGIN 
    INSERT TestTable (RandomColumn) 
     SELECT 'ABC'; 

    SELECT 'ABC' [ReturnValue] 
END 

Lorsque cette requête est exécutée dans Crystal Reports tout ReturnValue est ajouté à la zone du rapport, la question peut être vu clairement. La procédure s'exécute correctement dans l'aperçu, mais si elle est déployée sur un serveur BO, l'instruction d'insertion est ignorée. Pourquoi?

+0

Lier ceci à [Exécuter la procédure stockée dans le rapport] (https://stackoverflow.com/questions/45717557/execute-stored-procedure-in-report) – 4444

+0

Merci 4444! Aussi je pense que j'ai une idée. Je pense que c'est quelque chose à faire avec --- CACHING !!! Parce que j'ai trouvé lorsque je clique sur "actualiser" lors de l'affichage du rapport dans BusinessObjects --- les sprocs d'insertion DO exécuter! Donc, je pense que pour trouver ma réponse, je dois mieux comprendre la mise en cache dans BO – MrB

Répondre

0

Il s'avère que ce comportement a été provoqué par l'option "Enregistrer les données avec rapport" en cours de vérification sur mon rapport de test. C'est tout ce que c'était. Éteignez-le et les sprocs fonctionnent comme prévu