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

Hybrid View

  1. #1
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Zitat Zitat von XMan Beitrag anzeigen
    Hallo Gemeinde,

    wie schaffe ich es das ein SQL Index (CREATE INDEX) DBCS-fähig wird?
    Was muss ich da im Statement angeben?

    sollte dann so aussehen (DSPFD):
    Datenbankdateiattribute
    Extern beschriebene Datei . . . . . . . . . : Ja
    SQL-Dateiart . . . . . . . . . . . . . . . : INDEX
    Dateiebenen-ID . . . . . . . . . . . . . . : 1101215084231
    Erstellungsdatum . . . . . . . . . . . . . : 15.12.10
    Text 'Beschreibung' . . . . . . . . . . . . : TEXT
    Verteilte Datei . . . . . . . . . . . . . . : Nein
    Partitionierte SQL-Tabelle . . . . . . . . : Nein
    DBCS-fähig . . . . . . . . . . . . . . . . : Ja


    Danke schon mal!!

    LG
    ... bei mir funzt das unter Release 5.4 (hab' grad nix anderes zur Hand) voll elektrisch, bist Du sicher, dass das kein bug, sondern ein Feature ist?

    D*B
    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 2006
    Beiträge
    78
    @BenderD

    Tja, das kann ich leider nicht feststellen ob dies ein Bug ist.
    Ich sehe nur das dieser Index vor V7R1 erstellt wurde. Erstelle ich den Index jetzt mit V7R1 wieder, so sehe ich dieses Attribut nicht mehr als "DBCS fähig", was auch immer das heisen mag.
    Habe die Zugriffe kontrolliert die nun auf den "neuen" Index los gehen, da habe ich keine Fehler festgestellt.

    SQL dürfte hier beim Erstellen eines Indexes nicht mehr auf die Graphic Felder in der PF Datei prüfen.
    Erstelle ich eine PF Datei mit einem Graphic Feld so ist das Attribut "DBCS fähig" auf "JA" gesetzt.

    Ich nehme das mal so hin, den bisher habe ich noch keine negativen Auswirkungen festgestellt.

    LG

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Ich denke mal, dass die CCSID 13488 nicht mehr direkt als DBCS gesetzt wird, da diese ja inzwischen als UCS2 direkt unterstützt wird (Typ National).
    Somit wird das Attribut nun nicht mehr benötigt, da bei Abfragen die Konvertierung ggf. automatisch erfolgt.
    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
    Nov 2012
    Beiträge
    51

    Das denke ich auch.

    DBCS scheint nur die "alte" Lösung von IBM zur Darstellung von Fernost-Zeichensätzen zu sein, mit Wurzeln, die älter als die AS/400 sind.

    Die Tatsache, dass z.B. Unicode-Zeichensätze auch mehrere Bytes belegen können (es sind ja nicht immer zwei) hat mit dem alten ("Produkt"-)Namen überhaupt nichts zu tun.

    Ich habe leider keinen Zugriff mehr auf die Dateien meines letzten Arbeitsgebers, da hat es vor UCS-2-Feldern nur so gewimmelt, aber ich traue mich eigentlich wetten, dass da weit und breit nichts von DBCS steht.

    UCS-2-Felder sind auch keine graphischen Felder.

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Unicode ist entweder UCS2 oder UCS4.
    Variabel lang ist da nichts.
    Variabel sind UTF-8 (1-4 Byte) und UTF-16 (2 - 6 Byte).

    UCS2 muss immer noch als (var)graphic (erst ab V7 als "national char", "nchar", nvarchar") definiert werden.

    DBCS-Zeichensätze gibt es allerdings immer noch und können auch weiterhin verwendet werden.
    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
    Nov 2012
    Beiträge
    51

    Sorry,

    das mit dem "G" in der DDS hatte ich komplett verdrängt. :-)

    Ich wollte eigentlich nur ausdrücken, dass, wenn man heute eine internationale Anwendung erstellt, alles, wo "DBCS" oder "Graphic" draufsteht, getrost ignorieren kann, das bringt einen nicht weiter.
    Zumindest nach meiner Erfahrung.

    (Wenn wir schon bei i-Pünktchen sind: "Unicode" ist der eine, ganz große Zeichensatz. UTF ist eine mögliche Kodierung.)

    Habe gerade eine kleine Test-Datei erstellt, ein DSPFD des Index sagt "DBCS-fähig: Ja". (V7R1)

    PHP-Code:
    CREATE TABLE TESTU (FELD1 VARgraphic (10 CCSID 13488 NOT
    NULL WITH 
    DEFAULT)                                                 
    CREATE INDEX testu1 ON TESTu (FELD1

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Zitat Zitat von Anton Gombkötö Beitrag anzeigen
    das mit dem "G" in der DDS hatte ich komplett verdrängt. :-)

    Ich wollte eigentlich nur ausdrücken, dass, wenn man heute eine internationale Anwendung erstellt, alles, wo "DBCS" oder "Graphic" draufsteht, getrost ignorieren kann, das bringt einen nicht weiter.
    Zumindest nach meiner Erfahrung.

    (Wenn wir schon bei i-Pünktchen sind: "Unicode" ist der eine, ganz große Zeichensatz. UTF ist eine mögliche Kodierung.)

    Habe gerade eine kleine Test-Datei erstellt, ein DSPFD des Index sagt "DBCS-fähig: Ja". (V7R1)

    PHP-Code:
    CREATE TABLE TESTU (FELD1 VARgraphic (10 CCSID 13488 NOT
    NULL WITH 
    DEFAULT)                                                 
    CREATE INDEX testu1 ON TESTu (FELD1
    ... meine Rede: Bug => Fehlermeldung an IBM.

    Ich denke, ihr machts euch ein bisschen einfach:

    UCS2 und UCS4:= Unicode für Arme und Kranke
    - Subset von Unicode mit feste Länge von jedem Zeichen
    - für Indexbäume relativ ein´fach handhabbar

    UTF8 und UTF16:= the real stuff
    - kann heute (und in absehbarer Zukunft) alle Zeichen
    - arbeitet mit variabel langer Codierung
    - "häufige" (bei UTF8 wenige, bei UTF16 ala UCS2) Zeichen fix codiert
    - "seltene" Zeichen mit einer Art escaped Entity Darstellung
    - gleich aussehende Zeichen können unterschiedlche Codierungen haben
    - für Indexbäume problematischer

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

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Die Speicherung in UTF-8 ist ja ganz nett, aber je nach Implementation scheitert man dann spätestens beim Vergleich, wenn die zu vergleichende Zeichenfolge nicht auch UTF-8 ist.
    In diesem Fall wird ggf. unter Verlusten in UCS2 konvertiert.

    Auch der SUBSTR von UTF8 ist von der Implementierung abhängig.
    Ggf. wird in UCS2 umgewandelt, der SUBSTR durchgeführt und in UTF8 zurückgewandelt.
    Es kann aber auch schiefgehen.

    Native UTF8/16-Zeichenfolgen werden eher im Programm in Strings (UCS2) vor der weiterverarbeitung konvertiert.

    Ich habe da noch keine UCS4-Implemtierung gesehen, die dies alles korrekt behandeln würde.

    Zumindest für die reine DB-Speicherung würde ich von UTF8 abraten.

    Wobei Oracle generell NCHAR's als UTF-8 speichert und die Länge dabei in "Bytes" und nicht in "Zeichen" angegeben wird.
    Also NCHAR(1) geht zwar, aber kann halt keine Sonderzeichen wie Umlaute aufnehmen.
    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

  9. #9
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Wobei Oracle generell NCHAR's als UTF-8 speichert und die Länge dabei in "Bytes" und nicht in "Zeichen" angegeben wird.
    Wie das Oracle Speichert UTF-8, UTF-16 (und ich glaube auch UCS2) wird bei der Installation der Datenbank festgelegt und kann im nachhinein auch nicht mehr einfach geändert werden.

Similar Threads

  1. Berechtigungen auf Index (SQL)
    By BDehmel in forum Intern - Hilfe - Feedback - Tests-Forum
    Antworten: 1
    Letzter Beitrag: 16-12-07, 14:36
  2. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  3. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

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