Dann meinst du wohl mit Pointer eigentlich einen SQL Cursor!?!

Ich würde das Beispiel so schreiben:
Code:
D tab1ds    E DS          extname(Tab1)
/Free
 EXEC SQL Declare c1 Cursor For Select * From Tab1
   For Update;
 
 EXEC SQL Open Cursor;
 
 // The record gets locked with the FETCH statement 
 EXEC SQL Fetch Cursor Into :tab1ds;
  
 // Do some processing 
 
 EXEC SQL Update Tab1 set Row = (:tab1ds) Where Current of c1;

 EXEC SQL Close Cursor;
/End-Free
Dadurch braucht man bei Tabellenänderungen das Programm einfach nur neu erstellen lassen, wenn nötig. Und man ersparrt sich die angabe jeder Spalte.
Und Free ersparrt auch ein paar Zeilen

lg Andreas