Updating row selected by cursor

Versions of Firebird from V.3 onward will comply with the standard.

updating row selected by cursor-50updating row selected by cursor-54

I want to update the attribute table of a shapefile.

clause, the assignment phrases, containing the columns with the values to be set, are separated by commas.

I read the post Accessing attribute table within shapefile and replace values?

, but I don't know how to include a "Where clause".

SQL DECLARE 2 CURSOR employee_cur IS 3 SELECT * FROM employee 4 FOR UPDATE OF salary; 5 BEGIN 6 FOR employee_rec IN employee_cur 7 LOOP 8 UPDATE employee 9 SET salary = 10000 10 WHERE CURRENT OF employee_cur; 11 END LOOP; 12 END; 13 / PL/SQL procedure successfully completed.

SQL SELECT * FROM employee; ID FIRST_NAME LAST_NAME START_DAT END_DATE SALARY CITY DESCRIPTION ---- ---------- ---------- --------- --------- ---------- ---------- --------------- 01 Jason Martin 25-JUL-96 25-JUL-06 10000 Toronto Programmer 02 Alison Mathews 21-MAR-76 21-FEB-86 10000 Vancouver Tester 03 James Smith 12-DEC-78 15-MAR-90 10000 Vancouver Tester 04 Celia Rice 24-OCT-82 21-APR-99 10000 Vancouver Manager 05 Robert Black 15-JAN-84 08-AUG-98 10000 Vancouver Tester 06 Linda Green 30-JUL-87 04-JAN-96 10000 New York Tester 07 David Larry 31-DEC-90 12-FEB-98 10000 New York Manager 08 James Cat 17-SEP-96 15-APR-02 10000 Vancouver Tester 8 rows selected.

The application then executes the positioned update or delete statement on a different statement than the statement being used by the result set.

The syntax of these statements is: UPDATE Notice that these statements require a cursor name.

It happens because, in the execution layers, instead of establishing a stable “” and then executing the data changes to each set member, DML statements use implicit cursors for performing the operations on whatever row currently meets the conditions, without knowledge of whether that row formerly failed the condition or was updated already.

Thus, using a simple example pattern: Firebird's implementation does not accord with the SQL standards, which require that a stable set be established before any data are changed.

Although the code could bind separate variables to the parameters in the positioned update statement, it updates the rowset buffers and binds the elements of these buffers.

Tags: , ,