[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Oct 2003
    Beiträge
    9

    ODBC-Zugriff aus ACCESS -- Spalten sortieren

    Hallo,

    ich greife mittels ODBC-Zugriff aus Access auf Tabellen (PF (ohne LF)) auf einer AS400 (DB2) zu.
    Den Schlüssel habe ich in Access zugewiesen.
    Nun kann ich nur über die Schlüsselspalten sortieren, beim Versuch es über die weiteren Spalten zu machen, kommen die Fehlermeldungen:
    * "ODBC-Aufruf fehlgeschlagen" und dann
    * "[IBM][Client Access Express ODBC-Treiber(32-Bit)][DB2/400SQL]SQL0208 - ORDER BY-Spalte XXXXX oder Ausdruck nicht in Ergebnistabelle.(#-208).

    Ich würde mich sehr freuen, wenn ich da dazu Tips bekomme.
    Vielen Dank im voraus!

    Gruss
    DAN

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Lass dir mal über Access den genauen SQL-Befehl anzeigen !

    Ein Order by (Sortierung) ist nur dann möglich, wenn die Felder auch in der Auswahl (Select) enthalten ist.

    Z.B.:

    select f1, f2, f3 from myfile
    order by f1

    Nicht möglich (f1 fehlt):

    select f2, f3 from myfile
    order by f1
    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
    Oct 2003
    Beiträge
    9
    Vielen Dank für die schnelle Antwort.

    Ich habe versucht über die SQL-Funktion die Abfrage zu gestalten, leider tritt immer noch der Fehler auf.

    Der Fehler tritt schon bereits auf, wenn ich "direkt" mit der verknüpften Tabelle arbeiten (sortieren) möchte.

    Gruss
    DAN

  4. #4
    Registriert seit
    May 2002
    Beiträge
    2.643

    MS ACCESS

    Hallo DAN,
    ich denke das ist ein Hinweis:

    Microsoft Access version 7.0
    ----------------------------
    Problem:
    When the "Sort by" feature of Access is used on an AS/400
    table, it sometimes reports this error:
    SQL0208 - ORDER BY column 'column_name' not in result
    table.

    Cause:
    The Microsoft Jet Database Engine will use the ODBC
    cursor library to implement the select. The SQL
    statement will actually be modified by MS Access (JET)
    to first retrieve all records for the unique keys. This
    is the statement that will contain the invalid syntax.
    Access generates an invalid SQL statement where it is
    trying to SELECT one column and order by another column
    which is not selected. This is not valid ISO SQL-92 syntax.
    Use the SQL log utility in the ODBC administrator if
    you would like to see the incorrect SQL statement.

    Workaround:
    Access requires that you order by a keyed field.

    Gruss TARASIK

  5. #5
    Registriert seit
    May 2002
    Beiträge
    2.643

    Release der AS/400

    Hallo DAN,
    falls Du R520 auf der AS/400 hast, könnte die Lösung auch
    die Installation eines Neueren Servicepacks für Client Access
    sein, denn

    ORDER BY Column Not in the Result Set

    Some ODBC applications attempt to use a field in the ORDER BY clause that does not exist in the result set. This results in the following error:

    SQL0208 - ORDER BY column 'column_name' not in result

    Support for this feature was added in DB2 UDB for iSeries in R520. Client Access ODBC reports support for this to applications through the SQLGetInfo API: SQL_ORDER_BY_COLUMNS_IN_SELECT=90. Note that only R520 and later (with a service pack after SI04684) report "N". Older versions report "Y" informing applications that the column used in the ORDER BY clause must be in the select list.

    Servicepack Download:
    ftp://ftp.software.ibm.com/as400/pro...epack/si09809/

    Gruss TARASIK

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Bei der Verknüpfung der Tabelle verlangt Access die Auswahl von Feldern für eine eindeutige Satzbeziehung (Unique Key) !!
    Dieses Fenster erscheint nicht, wenn eine LF mit UniqueKey vorhanden ist.
    Beim Direktzugriff von Access auf die Tabelle (aus der Ansicht einfach Tabelle->Öffnen bzw. Doppelklick) werden die sog. "Bookmarks" aus dem UniqueKey gebildet, so dass die Änderung eines Satzes auch genau diesen Satz betrifft.
    Es kommt sonst noch zu ganz anderen Fehlern.

    Es gibt 2 Lösungen:

    1. Beim Verknüpfen genau die Felder anklicken, die den Satz eindeutig benennen (where-Bedingung).

    2. Erstellen einer LF mit UniqueKey und die Verknüpfung aktualisieren bzw. neu durchführen.
    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

  7. #7
    Registriert seit
    Oct 2003
    Beiträge
    9
    Vielen Dank für die Informationen!

    Eine Logische Datei habe ich erstellt, leider tritt der Fehler immer noch auf.

    Die AS400 ist R510, wird aber demnächst auf R520 gesetzt.
    Client Access habe ich mittlerweile auf R520 upgedatet.

    Die Hoffnung liegt auf dem Releasewechsel auf der AS400.

    Gruss
    DAN

  8. #8
    Registriert seit
    Jul 2001
    Beiträge
    68

    Smile ODBC

    Hallo Dan,

    falls Deine PF bereits einen Key (auf der i-Series) hat
    bei Verknüpfung im Bereich
    <<< Eindeutigen Datensatzbezeichner auswählen >>>
    nur OK eingeben.

    Viele Grüsse Alf

Similar Threads

  1. ODBC Zugriff über Access Null-Values
    By Bernd Wiezroek in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 27-04-06, 15:47
  2. MS Access Zugriff via ODBC auf iSeries Tabellen
    By Rico in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 21-03-05, 09:43
  3. Zugriff von Access auf iSeries per ODBC
    By Unregistriert in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 14-01-05, 08:57
  4. Antworten: 2
    Letzter Beitrag: 08-08-02, 11:29
  5. Zugriff MS Access auf AS/400 via ODBC
    By SL in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 22-07-02, 11:54

Berechtigungen

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