[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Nov 2008
    Beiträge
    38

    ALCOBJ/DLCOBJ mittels ODBC/CLI

    Hallo zusammen!

    Weiß vielleicht jemand, wie man ALCOBJ und DLCOBJ
    mittels ODBC/CLI am besten umsetzen könnte?
    (Wir versuchen, gewisse Codeteile möglichst SQL-konform
    umzusetzen. D.h. für CHKOBJ ein Lookup in den systables usw.... )
    Einzelne Statements ließen sich ja mit speziellen Locks ausführen, wir würden aber gerne:
    - ein "exclusive"-Lock setzen
    - alle möglichen Dinge durchführen
    (natürlich als "Lock-Owner"),
    aber mit unterschiedlichen Statements
    und verschiedensten Abfolgen.
    - am Ende das Objekt wieder freigeben.

    D.h. der Zugriff auf eine Datei durch andere Benutzer
    müsste wie bei ALCOBJ/DLCOBJ gezielt
    erlaubt/verboten werden können, unabhängig
    von eventuell nachfolgenden Operationen.
    Geht so etwas überhaupt mittels SQL?
    Würde das auf der iSeries und am MSSQL-Server
    gleich funktionieren?
    (Thema Datentransfer zwischen beiden System)

    Danke für Tipps/Links/....
    lg
    Chris

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    ALCOBJ/DLCOBJ ist eine reine AS/400-Funktion, die SQL nicht bekannt ist.
    Eine Adaption mit SQL gibt es da nicht und ist in SQL auch nicht vorgesehen.

    Für die Transaktionssteuerung kann man ggf. noch auf komplette Sperre der gelesenen Sätze gehen, die bis zum Commit gesperrt bleiben.
    Ob MSSQL sowas überhaupt unterstützt, weiß ich auch nicht.

    Ausserdem können Daten von anderen Sitzungen aus trotzdem gelesen werden.

    An Stelle von ALCOBJ solltet ihr euch andere Konzepte (Datenbankkonform) überlegen, da auch ALCOBJ nicht sicher 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.365
    SQL Statement LOCK TABLE macht sowas für Tabellen.
    Je nach Anforderung reicht da aber bereits Transaktionssteuerung (Commitment Control) aus, das ist für sowas da und wird von allen SQL konformen Datenbanksystemen unterstützt, wenn es auch in unterschiedlichen Dialekten durchaus unterschiedlich implementiert ist.
    In DB2/400 impliziert commit level serializable einen Lock auf die beteiligten Tabellen.
    Je nachdem was man vor hat, kann man das auch mit einer Tabelle mit Stellvertreter Locks auf Datensätze machen, das ist oft noch das portabelste zwischen verschiedenen Datenbanksystemen.

    D*B

    Zitat Zitat von caltmann Beitrag anzeigen
    Hallo zusammen!

    Weiß vielleicht jemand, wie man ALCOBJ und DLCOBJ
    mittels ODBC/CLI am besten umsetzen könnte?
    (Wir versuchen, gewisse Codeteile möglichst SQL-konform
    umzusetzen. D.h. für CHKOBJ ein Lookup in den systables usw.... )
    Einzelne Statements ließen sich ja mit speziellen Locks ausführen, wir würden aber gerne:
    - ein "exclusive"-Lock setzen
    - alle möglichen Dinge durchführen
    (natürlich als "Lock-Owner"),
    aber mit unterschiedlichen Statements
    und verschiedensten Abfolgen.
    - am Ende das Objekt wieder freigeben.

    D.h. der Zugriff auf eine Datei durch andere Benutzer
    müsste wie bei ALCOBJ/DLCOBJ gezielt
    erlaubt/verboten werden können, unabhängig
    von eventuell nachfolgenden Operationen.
    Geht so etwas überhaupt mittels SQL?
    Würde das auf der iSeries und am MSSQL-Server
    gleich funktionieren?
    (Thema Datentransfer zwischen beiden System)

    Danke für Tipps/Links/....
    lg
    Chris
    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
    Nov 2008
    Beiträge
    38
    Alles klar!

    Danke für die Infos, damit kommen wir einmal weiter.
    lg
    Chris

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Der SQL Standard fordert unterschiedliche Commit Level und definiert die Anforderungen an diese und alle nennenswerten Datenbanksysteme unterstützen diese (mehr oder weniger), das gilt für DB2/400 genauso wie für DB2 UDB und auch MSSQL.

    Einer dieser Sperrlevel ist committed read, der eben gerade sicherstellt, dass man keine geänderten Daten aus noch nicht abgeschlossenen Transaktionen sieht! (Nur unter Einsatz von Transaktionssteuerung kann man auch auf einer DB2/400 jederzeit konsistente Auswertungen ziehen und braucht keine Offline Zeiten!).

    D*B

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Für die Transaktionssteuerung kann man ggf. noch auf komplette Sperre der gelesenen Sätze gehen, die bis zum Commit gesperrt bleiben.
    Ob MSSQL sowas überhaupt unterstützt, weiß ich auch nicht.

    Ausserdem können Daten von anderen Sitzungen aus trotzdem gelesen werden.
    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. Antworten: 0
    Letzter Beitrag: 18-08-06, 11:22
  2. Datenexport mittels iSeries an Microsoft Access
    By njaclogoo in forum NEWSboard Server Software
    Antworten: 4
    Letzter Beitrag: 18-08-06, 10:17
  3. Datensätze in DB mittels VB einfügen
    By Toschie in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 21-06-06, 11:53
  4. Spools drucken mittels Cisco - VPN - Client
    By antonkuh in forum NEWSboard Drucker
    Antworten: 1
    Letzter Beitrag: 24-04-06, 12:00
  5. Entfernen externer HDD's mittels STRSST
    By vogeste0 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 03-04-02, 13:21

Berechtigungen

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