[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jan 2005
    Beiträge
    15

    SQL-Prozeduren (Sourcen des Typs SQLPROC)

    Hallo zusammen,

    eine Frage an die SQL-Gurus hier im Forum:

    Angenommen der Kunde hat n SQL-Prozeduren (Sourcen des Typs SQLPROC) auf der Maschine.
    In fast allen Sourcen sind nach dem "BEGIN" lokale Variablen mit "DECLARE" deklariert.
    Viele der Deklarationen beziehen sich auf die entsprechenden Felder in den Dateien.

    Jetzt die Frage:

    Kann man diese Deklarationen - wie in RPG - mit *LIKE DEFINE irgendwie auf die Dateien referenzieren?
    Oder kann man diese Deklarationen in eine COPY-Strecke auslagern?

    So wie es im Moment codiert ist, müssen alle Sourcen überarbeitet werden, wenn sich in einer Datei das entsprechende Feld (Länge oder Attribut) ändert!



    Vielen Dank für die Hilfe im voraus!



    Mit freundlichen Grüßen

    Olaf Appel

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Nein, da ist leider Fleiß angesagt.
    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

  3. #3
    Registriert seit
    Apr 2005
    Beiträge
    104
    Hm, da möchte ich den hinterlassenen Eindruck doch etwas relativieren:

    SQL ist grundsätzlich flexibler als klassische AS400-Programme; SQL-stored-Procedures und Functions sind nicht starr mit einem bestimmten Format der Datenbankdateien verbunden, sie verwenden keinen LevelCheck, um zu prüfen, ob sich die Datei vielleicht geändert hat. Stattdessen mappen sie jedes Feld, bei Update, bei Select, bei Delete, und wenn Du beim Insert die Feldliste angibst, auch da ...

    Interne Variable sind vor allem Zähler und Arbeitsfelder. Die sollte man nicht zu klein dimensionieren. Knauserige Definitionen wird man heute aber eh nicht mehr wünschen, eher großzügigere. Der Sprung wird also eher von short auf long oder double sein, und nicht selten von 12 auf 13 Ziffern vor dem Komma.

    Neue Felder sind für SQL in der Regel auch kein Problem, wenn Du diese in der Tabelle mit einem vernüftigen Defaultwert definierst. Du mußt sie beim Insert dann nämlich nicht mehr angeben.

    Fazit: ich habe etwas Erfahrung mit SQL-Programmierung, und mit Tabellen, die von den Kollegen ständig erweitert wurden. Selten mußte ich meine Programme nochmal anpassen. Meistens habe ich sie nicht einmal neu kompilieren müssen (create procedure oder create function)

    Was man vermeiden sollte, das sind Umbenennungen von Feldern. Aber selbst das ist kein großes Problem, wenn die Namen signifikant genug sind, um ihr Vorkommen mit nem globalen Scan suchen und ersetzen können, z.B. mit PDM

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Auch das kann ich nicht ganz so stehen lassen.
    Definiere ich Variablen in der Prozedur zu groß, kann es durchaus zu Problemen und Fehlern führen (Überlauf, Abschneiden, o.ä.).
    Es kann ja Absicht sein, so zu verfahren.

    Sicher ist nur eins:
    Eine Felddefinition wie LIKE wäre da schon hilfreich.
    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

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL wiederaufrufen des Programmes
    By Squall in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 03-11-06, 11:15
  3. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  5. SQL: Suchen des Sonderzeichens %
    By ZakOyten in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 19-04-06, 11:49

Berechtigungen

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