// example illustrating use of user-specified key for select_update_iterator

vector<variant_row> DynamicReadAndUpdateDataPK()
{
 vector<variant_row> results;

 DynamicDBView<> view(
 	 DynamicDBView<>::Args().tables("DB_EXAMPLE").fields("*").handler(AlwaysThrowsHandler())
 );

 DynamicDBView<>::select_update_iterator read_it = view.begin();

 variant_row row = *read_it;
 
 
 // STRING_VALUE is the field which will determine which fields get updated
 // for each of the 5 updates, some of the other records in the table have
 // STRING_VALUE equal to the value of the row being updated ... so those records will also get modified
 // giving us more than just 5 records updated
 
 read_it.SetKey("STRING_VALUE");
 
 for ( int i = 0; i<5 && read_it != view.end(); ++i)
 {
  row = *read_it;
  row["STRING_VALUE"] = string("Fizzle");
  row["DOUBLE_VALUE"] = 0.5;
  *read_it = row;
  ++read_it;
 }
}


/* output looks like:
!!!!!!!!!!!!!!!!!!!!! Begin Example DynamicReadAndUpdateDataPK() !!!!!!!!!!!!!!!!!!!!
INT_VALUE STRING_VALUE DOUBLE_VALUE EXAMPLE_LONG EXAMPLE_DATE ROWID
1 Example 3 56 JAN-01-2000 AAAu0WAANAAAfeGAAA
2 Foozle 7.7 12 DEC-04-1998 AAAu0WAANAAAfeGAAB
3 Bedazzled 12 99 JAN-01-2000 AAAu0WAANAAAfeGAAC
4 Example 11.11 44 FEB-28-1999 AAAu0WAANAAAfeGAAD
7 Example 21.11 21 JAN-01-2000 AAAu0WAANAAAfeGAAE
10 Settled 100.11 -1 NOV-11-1999 AAAu0WAANAAAfeGAAF
11 Example 0 0 OCT-31-2001 AAAu0WAANAAAfeGAAG
12 Mirror Image 31.13 22 DEC-04-1998 AAAu0WAANAAAfeGAAH
6 Find Me 22.22 22 JAN-01-2000 AAAu0WAANAAAfeGAAI
10 Find Me 34.44 41 JAN-01-2000 AAAu0WAANAAAfeGAAJ
6 Jordan 1000.1 1 NOV-11-1999 AAAu0WAANAAAfeGAAK
8 Corwin 99.99 100 JAN-01-2000 AAAu0WAANAAAfeGAAL
17 To find 213 34 NOV-11-1999 AAAu0WAANAAAfeGAAM
18 Duped -12.22 -99 FEB-13-1988 AAAu0WAANAAAfeGAAN
19 Mike -43334 2122 FEB-13-1988 AAAu0WAANAAAfeGAAP
20 To find 2020.2 2 NOV-11-1999 AAAu0WAANAAAfeGAAQ
21 Do not find 22 22 FEB-13-1988 AAAu0WAANAAAfeGAAR
22 To find 443.33 32 DEC-04-1998 AAAu0WAANAAAfeGAAS
23 Who? 0 0 FEB-13-1988 AAAu0WAANAAAfeGAAT
28 To find 11.11 38 DEC-04-1998 AAAu0WAANAAAfeGAAU
29 Prayer 912.22 -3 NOV-11-1999 AAAu0WAANAAAfeGAAV
30 The Reliable, Red Caminus Bouncy Ball 1000.11 10 NOV-11-1999 AAAu0WAANAAAfeGAAW
31 To find 0 110 FEB-13-1988 AAAu0WAANAAAfeGAAX
32 Example 1 109 FEB-13-1988 AAAu0WAANAAAfeGAAY
3 Join Example 33 33 JAN-01-2000 AAAu0WAANAAAfeGAAZ
3 Join Example 333 333 NOV-11-1999 AAAu0WAANAAAfeGAAa
1 Find Me 44.44 44 JAN-01-2000 AAAu0WAANAAAfeGAAd
15 Find Me 11 25 DEC-04-1998 AAAu0WAANAAAfeGAAg
3 Find Me 88.88 88 JAN-01-2000 AAAu0WAANAAAfeGAAl
23 To find 54.21 9 FEB-13-1988 AAAu0WAANAAAfeGAAm
28 To find 1.11 1 FEB-13-1988 AAAu0WAANAAAfeGAAn
77 Blah 3.21 2 JUL-07-2000 AAAu0WAANAAAfeGAAo
After update:
1 Fizzle 0.5 56 JAN-01-2000 AAAu0WAANAAAfeGAAA
2 Fizzle 0.5 12 DEC-04-1998 AAAu0WAANAAAfeGAAB
3 Fizzle 0.5 99 JAN-01-2000 AAAu0WAANAAAfeGAAC
4 Fizzle 0.5 44 FEB-28-1999 AAAu0WAANAAAfeGAAD
7 Fizzle 0.5 21 JAN-01-2000 AAAu0WAANAAAfeGAAE
10 Settled 100.11 -1 NOV-11-1999 AAAu0WAANAAAfeGAAF
11 Fizzle 0.5 0 OCT-31-2001 AAAu0WAANAAAfeGAAG
12 Mirror Image 31.13 22 DEC-04-1998 AAAu0WAANAAAfeGAAH
6 Find Me 22.22 22 JAN-01-2000 AAAu0WAANAAAfeGAAI
10 Find Me 34.44 41 JAN-01-2000 AAAu0WAANAAAfeGAAJ
6 Jordan 1000.1 1 NOV-11-1999 AAAu0WAANAAAfeGAAK
8 Corwin 99.99 100 JAN-01-2000 AAAu0WAANAAAfeGAAL
17 To find 213 34 NOV-11-1999 AAAu0WAANAAAfeGAAM
18 Duped -12.22 -99 FEB-13-1988 AAAu0WAANAAAfeGAAN
19 Mike -43334 2122 FEB-13-1988 AAAu0WAANAAAfeGAAP
20 To find 2020.2 2 NOV-11-1999 AAAu0WAANAAAfeGAAQ
21 Do not find 22 22 FEB-13-1988 AAAu0WAANAAAfeGAAR
22 To find 443.33 32 DEC-04-1998 AAAu0WAANAAAfeGAAS
23 Who? 0 0 FEB-13-1988 AAAu0WAANAAAfeGAAT
28 To find 11.11 38 DEC-04-1998 AAAu0WAANAAAfeGAAU
29 Prayer 912.22 -3 NOV-11-1999 AAAu0WAANAAAfeGAAV
30 The Reliable, Red Caminus Bouncy Ball 1000.11 10 NOV-11-1999 AAAu0WAANAAAfeGAAW
31 To find 0 110 FEB-13-1988 AAAu0WAANAAAfeGAAX
32 Fizzle 0.5 109 FEB-13-1988 AAAu0WAANAAAfeGAAY
3 Join Example 33 33 JAN-01-2000 AAAu0WAANAAAfeGAAZ
3 Join Example 333 333 NOV-11-1999 AAAu0WAANAAAfeGAAa
1 Find Me 44.44 44 JAN-01-2000 AAAu0WAANAAAfeGAAd
15 Find Me 11 25 DEC-04-1998 AAAu0WAANAAAfeGAAg
3 Find Me 88.88 88 JAN-01-2000 AAAu0WAANAAAfeGAAl
23 To find 54.21 9 FEB-13-1988 AAAu0WAANAAAfeGAAm
28 To find 1.11 1 FEB-13-1988 AAAu0WAANAAAfeGAAn
77 Blah 3.21 2 JUL-07-2000 AAAu0WAANAAAfeGAAo
deleted / changed items:
1 Example 3 56 JAN-01-2000 AAAu0WAANAAAfeGAAA
2 Foozle 7.7 12 DEC-04-1998 AAAu0WAANAAAfeGAAB
3 Bedazzled 12 99 JAN-01-2000 AAAu0WAANAAAfeGAAC
4 Example 11.11 44 FEB-28-1999 AAAu0WAANAAAfeGAAD
7 Example 21.11 21 JAN-01-2000 AAAu0WAANAAAfeGAAE
11 Example 0 0 OCT-31-2001 AAAu0WAANAAAfeGAAG
32 Example 1 109 FEB-13-1988 AAAu0WAANAAAfeGAAY
inserted / changed items:
1 Fizzle 0.5 56 JAN-01-2000 AAAu0WAANAAAfeGAAA
2 Fizzle 0.5 12 DEC-04-1998 AAAu0WAANAAAfeGAAB
3 Fizzle 0.5 99 JAN-01-2000 AAAu0WAANAAAfeGAAC
4 Fizzle 0.5 44 FEB-28-1999 AAAu0WAANAAAfeGAAD
7 Fizzle 0.5 21 JAN-01-2000 AAAu0WAANAAAfeGAAE
11 Fizzle 0.5 0 OCT-31-2001 AAAu0WAANAAAfeGAAG
32 Fizzle 0.5 109 FEB-13-1988 AAAu0WAANAAAfeGAAY

********************************


*/