IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Jasper Discussion :

ERROR: cannot execute UPDATE in a read-only transaction


Sujet :

Jasper

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 37
    Points : 40
    Points
    40
    Par défaut ERROR: cannot execute UPDATE in a read-only transaction
    Bonjour,

    Mon problème est dans le titre.

    Contexte : lorsque l'utilisateur remplie les zones de saisies avant génération du formulaire, je dois mettre à jour des champs avant le SELECT du rapport. Bien entendu, comme ce n'est pas possible directement, je suis passé par une procédure stockée, tel que:
    - ma requête du rapport est comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM func_seuils($P{rc},$P{rs},$P{fc},$P{fs})
    - ma procédure stockée est comme suit :
    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
    CREATE TYPE type_seuils AS (
    	ratio_critical numeric(4,2), 
    	ratio_survey numeric(4,2), 
    	freq_critical numeric(4,2), 
    	freq_survey numeric(4,2)
    ); 
    CREATE OR REPLACE FUNCTION func_seuils(rc numeric, rs numeric, fc numeric, fs numeric) RETURNS SETOF type_seuils AS
    $BODY$
    DECLARE
    	record type_seuils;
    BEGIN
    	UPDATE seuils SET 
    		ratio_critical = coalesce(rc::numeric(4,2), ratio_critical), 
    		ratio_survey = coalesce(rs::numeric(4,2), ratio_survey), 
    		freq_critical = coalesce(fc::numeric(4,2), freq_critical), 
    		freq_survey = coalesce(fs::numeric(4,2), freq_survey);
     
    	FOR record IN SELECT ratio_critical, ratio_survey, freq_critical, freq_survey FROM seuils
    	LOOP
    		RETURN NEXT record;
    	END LOOP;
    	RETURN;
    END;
    $BODY$
    LANGUAGE 'plpgsql';
    Apparament, Jasper crée nativement des transactions en mode READ ONLY, et ajouter un SET TRANSACTION READ WRITE juste après le BEGIN n'est pas une solution (paramétrage impossible si une requête a déjà été effectuée, ce qui est le cas par Jasper).

    Voilà, quelqu'un peut-il m'aider à m'en sortir?

    Cordialement,

  2. #2
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 35
    Points : 42
    Points
    42
    Par défaut
    Bonjour,
    Essaye de regarder du coté des Scriptlet.
    l'idée serai d'écrire ta méthode de mise à jour dans la scriptlet.

    http://jasperforge.org/uploads/publi...let/index.html

    Bon courage

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 37
    Points : 40
    Points
    40
    Par défaut
    Merci pour l'astuce.
    Je suis en train d'essayer, ça fonctionne dans le mode preview, mais pas encore depuis l'interface jasperserver où j'ai un joli
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error loading scriptlet class
    En cours d'investigation...


    Edit: bon, bah même message d'erreur : Cannot execute UPDATE
    Pour mon erreur ci-dessus, il fallait (en plus de l'import du .jar) importer le dossier contenant physiquement la classe java

    Bref, donc j'en suis toujours au même point


    Edit : Ok, je n'avais pas retiré l'update de ma procédure stockée.
    A travers un scriptlet, ça fonctionne
    Merci beaucoup !!!

  4. #4
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 35
    Points : 42
    Points
    42
    Par défaut
    ravis d'avoir pu t'aider

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [V8] Importation csv Error Cannot read property '1' of undefined
    Par vernetk dans le forum Odoo (ex-OpenERP)
    Réponses: 1
    Dernier message: 11/02/2015, 17h36
  2. Réponses: 3
    Dernier message: 13/02/2014, 12h38
  3. Message d`erreur " error:cannot read : src/main/org/pache/tools/bzip2/*.java "
    Par wiss20000 dans le forum RedHat / CentOS / Fedora
    Réponses: 0
    Dernier message: 09/11/2007, 16h36
  4. Message 'attempted update of read-only column'
    Par Mirmillon dans le forum Bases de données
    Réponses: 2
    Dernier message: 26/04/2006, 10h21
  5. CheckBox en Read Only
    Par MrJéjé dans le forum C++Builder
    Réponses: 7
    Dernier message: 23/06/2002, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo