[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  1. #1
    Registriert seit
    Mar 2002
    Beiträge
    5.390
    Hallo,

    was ist schon vernünftig? was für MS-Access vernünftig sein mag, muss für DB2 noch lange nicht vernünftig sein. Diese Auto Increment Felder sind da ein typisches Beispiel: was mit einer einzigen zentralen Procedure getKey(Dateiname, Feld) einfach und durchschaubar programmierbar war, wird mit aller Gewalt dadurch ersetzt, dass man sich einen Schlüsselwert von der Datenbank reinmalen lässt und anschließend eine Funktion aufrufen muss, die einem mitteilt, was die Datenbank jetzt da rein gemalt hat und warum das ganze? Einfacher wird es dadurch nicht, durchschaubarer auch nicht, aber MS-Access kann das ja schließlich auch?! Dieses Feature kann nur in der Fassenacht entstanden sein.

    mfg

    Dieter Bender

    Zitat Zitat von B.Hauser Beitrag anzeigen
    Hallo,

    ROWID ist alles andere als ein vernüftiger Zähler!!!
    Sondern ein verschlüsselter 40A Wert!

    Entweder man generiert die Tabelle mit SQL neu und verwendet eine Identity Column oder man geht den Weg über das SEQUENCE-Objekt und before Insert Trigger.

    Übrigens kann man auch aus dem Sequence Objekt den aktuellen Zähler ermitteln.

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

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.790
    Naja, ganz so schlimm ist es ja nicht.
    Ich arbeite auch gerne mit dem Zähler, da viele Zugriffe und Querverweise mit dieser eindeutigen Nummer einfach klarer sind.
    Ausserdem stellt es (ggf.) sicher, dass man nicht so einfach per ODBC Daten unterjubeln kann.

    Um den Wert zu erfragen, kann man auch in 2 Schritten vorgehen, wenn man denn das Ergebnis benötigt:

    exec sql set : MyCount = next value for MySeq;
    insert into mytable Values(: MyCount, ...);

    Ob das aber performant ist ...
    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
    Mar 2002
    Beiträge
    5.390
    Eindeutiger Schlüssel immer, Kunstkey (sprich Zähler) meistens, wegen der Problematik Änderung semantischer Keyfelder und einfacherer Normalisierung, die Alternative ist dabei:
    - Erzeugung des Schlüssels in der Applikation und reinschreiben in die Datenbank
    - Erzeugung des Schlüsselwertes in der Datenbank und dann ermitteln aus der Datenbank
    Bei Access (Eingabe in die Datenbank ohne Applikation) spricht einiges für den zweiten Weg. Bei DB2 spricht vieles für den ersten Weg, es sei denn, man will wirklich mit ODBC (oder von der schnellen Eingreiftruppe DFU 9) ohne Applikation Daten in die Datenbank reinmalen lassen - net wirklich ernst gemeint???

    D*B

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Naja, ganz so schlimm ist es ja nicht.
    Ich arbeite auch gerne mit dem Zähler, da viele Zugriffe und Querverweise mit dieser eindeutigen Nummer einfach klarer sind.
    Ausserdem stellt es (ggf.) sicher, dass man nicht so einfach per ODBC Daten unterjubeln kann.

    Um den Wert zu erfragen, kann man auch in 2 Schritten vorgehen, wenn man denn das Ergebnis benötigt:

    exec sql set : MyCount = next value for MySeq;
    insert into mytable Values(: MyCount, ...);

    Ob das aber performant ist ...
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.716
    Zitat Zitat von BenderD Beitrag anzeigen
    Diese Auto Increment Felder sind da ein typisches Beispiel: was mit einer einzigen zentralen Procedure getKey(Dateiname, Feld) einfach und durchschaubar programmierbar war...

    Dieses Feature kann nur in der Fassenacht entstanden sein.
    Dieter, Du weisst doch, wieviele Features (gerade in unserer Branche) im Vollsuff (tschuldigung) entstanden sind - und alle freuen sich auch noch drüber. Früher hat man als Notlösung MAX() auf einen Key genommen. Und? Geht immer noch, wenn man denn einen passenden Key hat.

    Mal schauen, was V7R1 an netten Fassenachtsüberraschungen mit sich bringt.

    Helau,

    -h

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.390
    ... mal abgesehen davon, dass max schief geht wenn zwei das glleichzeitig versuchen ohne die ganze Table zu sperren, vielleicht gibt es ja kein V7R1 mehr, weil dass dann VauEi heißt, oder die AS/400 dem Auto decrement zum Opfer fällt
    http://upload.wikimedia.org/wikipedi...d_Car_Park.jpg

    D*B

    Zitat Zitat von holgerscherer Beitrag anzeigen
    Dieter, Du weisst doch, wieviele Features (gerade in unserer Branche) im Vollsuff (tschuldigung) entstanden sind - und alle freuen sich auch noch drüber. Früher hat man als Notlösung MAX() auf einen Key genommen. Und? Geht immer noch, wenn man denn einen passenden Key hat.

    Mal schauen, was V7R1 an netten Fassenachtsüberraschungen mit sich bringt.

    Helau,

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

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.716
    Zitat Zitat von BenderD Beitrag anzeigen
    ... mal abgesehen davon, dass max schief geht wenn zwei das glleichzeitig versuchen ohne die ganze Table zu sperren, vielleicht gibt es ja kein V7R1 mehr, weil dass dann VauEi heißt, oder die AS/400 dem Auto decrement zum Opfer fällt
    http://upload.wikimedia.org/wikipedi...d_Car_Park.jpg

    D*B
    ROFL, so würd ich gern mal die Autos der Nachbarn parken, die immer wüst in der Gegend rumstehen.

    Von einem guten Locking ging ich aus, andererseits braucht man so selten Zählerspalten, wenn das Datenmodell sauber ist.

    Übrigens - bis jetzt heissts überall V7R1, aber Vi (oder iV7) wäre auch mal was neues.

    Wo Apple doch grade das iPad (EiPatt) rausbringt, wäre ein iAm vielleicht angebracht?

    -h

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.943
    Zitat Zitat von holgerscherer Beitrag anzeigen
    ROFL, so würd ich gern mal die Autos der Nachbarn parken, die immer wüst in der Gegend rumstehen.

    Von einem guten Locking ging ich aus, andererseits braucht man so selten Zählerspalten, wenn das Datenmodell sauber ist.

    Übrigens - bis jetzt heissts überall V7R1, aber Vi (oder iV7) wäre auch mal was neues.

    Wo Apple doch grade das iPad (EiPatt) rausbringt, wäre ein iAm vielleicht angebracht?

    -h
    Soweit ich weiß heißt es ja auch schon nicht mehr V6R1M0 sondern offiziell (IBM) i 6.1 und das nächste wird dann IBM i 7.1

    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

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.716
    Zitat Zitat von B.Hauser Beitrag anzeigen
    Soweit ich weiß heißt es ja auch schon nicht mehr V6R1M0 sondern offiziell (IBM) i 6.1 und das nächste wird dann IBM i 7.1
    ja, IBM i 7.1 ist eher offiziell, aber das ist ein sehr schlechter Suchbegriff für die Suchmaschine. Da ist V7R1 oder R710 eher geeignet, und in vielen Dokumenten werden auch diese Strings verwendet

    -h

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.390
    ... zumindest bei Google ist das kein Problem!

    Ergebnisse 1 - 10 von ungefähr 28.000 für V6R1M0.
    Ergebnisse 1 - 10 von ungefähr 73.400.000 für i 6.1

    => Ziel erreicht: Bekanntheit signifikant gesteigert, obwohl der neuere Name noch garnicht auf allen Seiten aktualisiert ist

    D*B

    Zitat Zitat von holgerscherer Beitrag anzeigen
    ja, IBM i 7.1 ist eher offiziell, aber das ist ein sehr schlechter Suchbegriff für die Suchmaschine. Da ist V7R1 oder R710 eher geeignet, und in vielen Dokumenten werden auch diese Strings verwendet

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

  10. #10
    Registriert seit
    Aug 2001
    Beiträge
    2.716
    Zitat Zitat von BenderD Beitrag anzeigen
    ... zumindest bei Google ist das kein Problem!

    Ergebnisse 1 - 10 von ungefähr 28.000 für V6R1M0.
    Ergebnisse 1 - 10 von ungefähr 73.400.000 für i 6.1
    Lach :-)

    Wenn wir schon dabei sind:

    V6R1 -> ungefähr 128.000
    R610 -> ungefähr 778.000
    i -> ungefähr 6.450.000.000 (na immerhin)
    OS/400 -> ungefähr 15.100.000

    Naja. Spass beiseite, ich kämpf noch ein wenig mit der Schweinegrippe rum...

    -h

  11. #11
    Registriert seit
    Nov 2006
    Beiträge
    102
    Schön, wie dieser Thread abgedriftet ist!
    Mein Vorschlag, um den Bekanntheitsgrad noch einmal richtig voranzubringen: Das "i" (ich meine den unteren Strich) weglassen und nur noch den Punkt verwenden. Jeder Punkt gilt! Das wäre doch auch für Google eine schöne neue Aufgabe ... (und wieder drei Punkte)

  12. #12
    Registriert seit
    Mar 2002
    Beiträge
    5.390
    Ergebnisse 1 - 10 von ungefähr 6.390.000.000 für i
    Es wurden keine mit Ihrer Suchanfrage - . - übereinstimmenden Dokumente gefunden.
    Vorschläge: * Probieren Sie andere Suchbegriffe.

    no comment

    D*B

    Zitat Zitat von Spateneder Beitrag anzeigen
    Schön, wie dieser Thread abgedriftet ist!
    Mein Vorschlag, um den Bekanntheitsgrad noch einmal richtig voranzubringen: Das "i" (ich meine den unteren Strich) weglassen und nur noch den Punkt verwenden. Jeder Punkt gilt! Das wäre doch auch für Google eine schöne neue Aufgabe ... (und wieder drei Punkte)
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 11:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 15:53
  3. Auto increment; wie Startwert und Schrittweite definieren?
    By deni87991 in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 14-08-06, 13:05
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 10:43
  5. Identity Colum / Auto increment selbst erzeugen?
    By scoobydoo in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 25-11-05, 11:40

Berechtigungen

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