[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    @Jamikl

    /exec sql set option commit = *none
    /end-exec

    Füge auf jeden Fall obiges als 1. SQL-Anweisung ein.

    Schließt du den Cursor ?

    /exec sql close cursor
    /end-exec

    Wenn nicht ergänze den "set option" mit ", clossqlcsr = *modul"

    In der H-Bestimmung würde ich eine Aktivierungsgruppe benennen:

    h dftactgrp(*none) actgrp(myname)

    Du erstellst beim Aufruf immer eine neue Aktivierungsgruppe. Besser ist es schon, einen Namen zu verwenden. Alle Programme mit dem gleichen Namen laufen dann in derselben und sind auch mit einem einzelnen RCLACTGRP zu deaktivieren.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  2. #2
    Registriert seit
    Aug 2003
    Beiträge
    44
    @ Fuerchau

    Danke für deinen Lösungsansatz, aber die Antwort von B.Hauser hat mein Problem gelöst.
    Ich wusste ja nicht, dass SQL die Dateien standardmäßig im UpdateModus öffnet.

    @ B.Hauser

    kurze knackige Antwort.....kurze knackige Lösung....kurz gesagt................RESPEKT!!!!


    @ all

    Danke, dass ich euch was von euerer Zeit rauben durfte!!!!

    MFG Jamikl

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Das kann ich so nicht ganz stehen lassen.

    Wenn ich einen Cursor eröffne dann wird die Datei im Input-Modus eröffnet (über DSPJOB nachzuschauen).
    Wenn ich den Cursor schließe, ist die Datei auch zu !

    Ich kann daher Birgittas Aussage nicht nachvollziehen.

    Um beim Select einen Open im Update-Modus hinzukriegen muss ich schon "for update" kodieren. Dann wird allerdings jeder Satz beim Lesen gesperrt um ggf. "update ... current of ..." zu verwenden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Aug 2003
    Beiträge
    44
    Da möchte ich dir rechtgeben!!
    Ich habe mitlerweile festgestellt, dass dies an unserem Pre-PreCompiler hängt und ich weiß jetzt noch nicht wer von euch recht hat!
    Es geht ja hier nicht darum wer der bessere ist ODER?????
    Ich melode mich wenn ich das Problem entdeckt habe!!

    schönen Tag noch!!

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Pre-Precompiler ?

    Poste doch mal das Listing (allerdings die RPG-Umwandlung!).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Aug 2003
    Beiträge
    44
    Menno;

    was meinst du denn mit Listing??? Umwandlungsliste??!!
    Ich meinte natürlich Pre-Compiler(Firmeneigene Copy Strecken)

  7. #7
    Registriert seit
    Aug 2003
    Beiträge
    44
    Ich habe jetzt das Problem:

    Unsere Dateien werden immer in eigenen ServerProgrammen gelesen Satz für Satz und dabei wird Der Server immerwieder beendet. Desshalb kann ich auch nicht CLOSQLCSR mache da nach dem ersten Lesen ein Fehler auftritt.
    Soweit so gut, das könnte man dann noch breittreten, aber dafür habe ich momentan keine Zeit. Werd ich bei Zeiten mal tun.

    Seht das Thema als erledigt und noch mal ein dickes Danke, denn Ihr müsst ja auch arbeiten (denk´ich mal).

    @B. Hauser

    Wie hinterlege ich DFTACTGRP(*none) actgrp(mygrp) in einem normeln RPG???? Ich bekomme da diese Meldung:


    FMT
    000.01 H DFTACTGRP(*NONE) ACTGRP

    Die Stellen 7-14, 16-17, 22-25, 27-40, 42, 45-56 oder 58-74 sind nicht leer. +



    Wie sieht da der Syntax aus????

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von Jamikl
    @B. Hauser

    Wie hinterlege ich DFTACTGRP(*none) actgrp(mygrp) in einem normeln RPG????
    Wie sieht da der Syntax aus????
    Code:
     /IF DEFINED(*CRTBNDRPG)
    H DFTACTGRP(*NO)
     /ENDIF
    H ACTGRPG('MYACTGRP')
    Die Compiler-Direktive bedeutet, dass DFTACTGRP(*NO) nur berücksichtigt wird, wenn mit CRTBNDRPG compiliert wird.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    @Birgitta
    Was hat das mit dem Update-Mode zu tun ?
    Wenn ich mir die geöffnet Dateien anschaue, sind ALLE immer mit I eröffnet, keine mit IO !

    Ausserdem bezieht sich das auf die Anweisung "drop cursor", die ich unter bestimmten Bedingungen (s.o.) nicht verwenden kann, insbesonders wenn ich mit dynamischen SQL arbeite. "Drop cursor" verwendet man aber höchst selten.

    Nichts für ungut, aber prüfe doch mal zur Laufzeit die geöffneten Dateien !
    IO finde ich nur bei ODP's, die ich für Delete/Insert/Update verwendet habe, niemals beim Select (ohne "for update").

    Liegts am Release ? Ich verwende V5R1/V5R2.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    zur Ausgangsfrage: Es gibt zwei Möglichkeiten SQL Ressourcen frei zu geben:
    1.) DISCONNECT im SQL
    2.) Ende des Jobs
    Eine Variante dies von außen zu tun: ALCOBJ hat seit ein paar Releases einen Parameter mit dem man anfordern kann die benannten Sperren frei zu geben (mal prompten und F) und in der Bedienerhilfe nachlesen, fäält mir gerade nicht ein)

    mfg

    Dieter Bender
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von Fuerchau
    Ich kann daher Birgittas Aussage nicht nachvollziehen.

    Um beim Select einen Open im Update-Modus hinzukriegen muss ich schon "for update" kodieren. Dann wird allerdings jeder Satz beim Lesen gesperrt um ggf. "update ... current of ..." zu verwenden.
    Hier ein Auszug aus SQL-Reference:
    A cursor is deletable if all of the following are true:
    - The outer fullselect identifies only one base table or deletable view.
    - The outer fullselect does not include a GROUP BY clause or HAVING clause.
    - The outer fullselect does not include column functions in the select list.
    - The outer fullselect does not include a UNION or UNION ALL operator.
    - The outer fullselect does not include the DISTINCT clause.
    - The select-statement contains an ORDER BY clause, and the FOR UPDATE OF clause or DYNAMIC SCROLL are specified.
    - The select-statement does not include a FOR READ ONLY clause.
    - The select-statement does not include a FETCH FIRST n ROWS ONLY clause.
    - The result of the outer fullselect does not make use of a temporary table.
    - The select-statement does not include the SCROLL keyword unless the DYNAMIC keyword is also specified.
    - The select list does not includes a DATALINK column unless a FOR UPDATE OF clause is specified.
    - A result column in the select list of the outer fullselect associated with a cursor is updatable if all of the following are true:

    The cursor is deletable.

    The result column is derived solely from a column of a table or an updatable column of a view. That is, at least one result column must not be derived from an expression that contains an operator, scalar function, constant, or a column that itself is derived from such expressions.

    A cursor is read-only if it is not deletable.
    Aus diesem Grund sollte man vorsichtshalber immer "FOR READ ONLY" im Declarestatement angeben, wenn die Datei nur als Input-Datei verarbeitet werden soll.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

Similar Threads

  1. SQL und OBJLCK
    By malzusrex in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 19-09-06, 11:04
  2. OBJLCK im IFS ???
    By PS in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 02-07-03, 13:27

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •