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

AS/400 Discussion :

probleme avec update en sql


Sujet :

AS/400

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2008
    Messages : 20
    Points : 13
    Points
    13
    Par défaut probleme avec update en sql
    bonjour

    je suis confronté au probleme suivant:

    je dois developper en windev 15 une application qui tourne sur pc et qui lit et met à jour les données sur un AS400 à l'aide de requettes SQL.

    Pour cela j'utilise l'odbc client access , pour tout ce qui est des lectures sur as400 et traitement sous windev pas de soucis , mon seul soucis se trouve au niveau des updates.

    Je fais un update sur as400 par sql d'un compteur (n° de facture + 1)
    et ensuite je lance une requete de lecture pour recuperer le nouveau numero.
    Cela fonctionne sauf que si un utilisateur met à jour lui aussi ce compteur entre temps , ma requete recupere son numero !!

    j'ai essayé cela : SET TRANSACTION ISOLATION LEVEL NO COMMIT
    (uniquement le no commit fonctionne peut etre parceque les fichiers sur l'as400 sont en mode 36)

    update ......................

    select .................


    commit

    cela est il correct et reglera mon probleme ?
    il est à noté que pendant un certain temps et pour certains postes , mon programme tournera en meme temps que l'ancien ecrit en COBOL .

    qu'en pensez vous ?


    merci


    michel

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Dans ton sql tu fais :

    UPDATE ...... with CS
    puis
    SELECT ...... with CS
    puis
    COMMIT

    Mais dans ton COBOL il faut que tu fasses aussi du commitment control sous le niveau d'isolation CS (Cursor stability) pour éviter toute lecture sale.
    Donc, dans le CL avant ton cobol tu fais un STRCMTCTL LCKLVL(*CS) sur ton fichier.
    Après la MAJ dans ton COBOL tu fais un COMMIT.
    Ne pas oublier le ENDCMTCTL

    Dans les deux cas, COBOL ou SQL, aucun des deux ne pourra lire l'enregistrement tant qu'il n'est pas committé. Le système va attendre.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2008
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Bonjour

    merci beaucoup pour ta reponse cela va me sauver la vie !!!!, si cela est possible peux tu me noter un exemple en sql avec le update ...CS et le select .... CS ? car je ne connais pas du tout .

    j'ai essaye ca :

    testtransaction= "SET TRANSACTION ISOLATION LEVEL READ COMMITTED"

    update ....

    select ...
    commit

    mais je recois cette erreur SQL au niveau du set transaction .... :
    "erreur sql sql7008: table nb.const incorrecte pour cette operation "

    merci encore

    michel

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Pour l'exemple, tu fais ton update et ton select et à la fin tu tapes WITH CS
    Sinon un :
    Exec SQL SET TRANSACTION ISOLATION LEVEL CS

    Il faut que ton fichier soit journalisé, sinon pas de transaction possible.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2008
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    merci je vais essayer .
    je donnerai le resultat.


    a+

    michel

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2008
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    bonjour


    est il possible de demarrer une journalisation sur un as400 qui possede des fichiers qui sont en mode s36 ?


    merci


    michel

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

Discussions similaires

  1. [SQL] probleme avec update
    Par pareo dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 26/10/2007, 10h59
  2. [SQL] Probleme avec UPDATE
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/10/2007, 11h42
  3. [VBA-SQL]Probleme avec UPDATE
    Par omegabahamut dans le forum Access
    Réponses: 3
    Dernier message: 01/01/2007, 19h54
  4. Probleme avec UPDATE et INSERT INTO
    Par cmoimeme dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/05/2006, 22h12
  5. probleme avec creation requete sql server
    Par Firas_tn dans le forum MS SQL Server
    Réponses: 19
    Dernier message: 15/04/2005, 12h12

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