[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    @Baldur: Heute ist nicht Dein Tag!

    Ein updateRow() ändert höchstens eine Zeile des ResultSets, egal was ich da für Felder ausgewählt habe und das macht der auch nur, wenn das ResultSet nicht CONCUR_READ_ONLY oder geschlossen ist, oder gerade vorher insertRow() gemacht wurde.

    Satzsperren werden bei SQL normalerweise auf Ebene der Connection gehalten, bei korrektem vorgehen kann man sehr wohl mit Sperre lesen und dann einen searched update machen, geht das nicht, hat der Treiber einen Schuss.

    D*B

    PS: Ich kanns nicht oft genug sagen: arbeitet man mit SQL ohne Commit und macht Änderungen an Tabellen, dann macht man was verkehrt, egal mit welcher Datenbank auch immer!!!
    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.695
    @Dieter
    Bei Java macht dir wohl keiner was vor.
    Also ich muss dir recht geben.
    Bei "CONCUR_UPDATABLE" generiert Java (bzw. der Treiber der AS/400):
    UPDATE TestUpd SET "F2"=? WHERE CURRENT OF "CRSR0001"
    Damit kann wenigstens Java mehr als alle anderen.

    In ADODB (COM-Schnittstelle) funktioniert dies leider nicht, da tatsächlich ein SQL der Art
    update MyFile set FX=NewVal where fx=fxOldval and fy=fyoldval ...

    Dies liegt in der Tatsache begründet, dass ein ADODB.Recordset "offline" bearbeitet werden kann.
    Und nur als "ClientCursor" besteht überhaupt nur ein Updatable Recordset.

    In ADO.NET ist es noch ganz anders, da ADO.NET grundsätzlich als Offline-Version konzipiert ist:
    Ein Reader kann nur lesen und diesen benötigt man zum Füllen einer DataTable bzw. eines DataSet's.
    Per DataAdapter kann man sich dann die Insert/Update/Delete's genrieren lassen, die allerdings immer von den selektierten Feldern abhängen.
    Einen "update ... current of ..." gibt es definitiv nicht, da nun mal ein Reader grundsätzlich nur vorwärts lesen kann, Methode Read.

    Um also tatsächlich den richtigen Satz zu ändern kommt man um einen Unique-Key nicht herum.
    Selbst Entity-Frameworks benötigen einen solchen Schlüssel, wobei die wenigsten mit einem "Compound-Key", also mehrere Schlüssel, zurecht kommen. Diese benötigen fast alle eine Identity-Spalte.
    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. FTP erstellt Datei auf fernem System - aber ohne Datenbankfelder
    By msost in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 21-01-14, 11:31
  2. Artikel: SQL: dynamisches Select ohne Cursor
    By NEWSolutions Redaktion in forum NEWSolutions artikel
    Antworten: 0
    Letzter Beitrag: 05-12-13, 18:03
  3. doppelter Schlüssel
    By SBaum in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 24-01-03, 11:17
  4. Antworten: 4
    Letzter Beitrag: 31-10-02, 07:56
  5. Berechtigung zum Updaten einer Tabelle
    By Sascha Storzum in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 22-08-02, 07:37

Berechtigungen

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