Class RefObject - Program Example

Class RefObject allows to store references to embedded objects.
C++ program below shows use of RefObject class. Table 'customers' is a table of objects. RefObject is based on Table and Select is based on RefObject. Table 'customers4' contains column with reference to this object, so after each RefObject is fetched from Select it can be used in Insert statement to populate Table 'customers4'.

 
// ins_ref_objects.cc
#include <orac_lib.h>

  int main()
  {
          int n = 1;
          Connect c;
          try {
                Database d = c.OpenDatabase("demo", "demo");
                Table t = d.GetTable("customers");
                RefObject r(t);
                Select s(r);

                Table t1 = d.GetTable("customers4");
                Object o = t1.GetObject();
                Insert i(t1);
                i += o;
                i << t1["cust_id"] << t1["cust_name"];

                while (s.Row()) {
                      i >> n++ >> &r;
                      cout << i.Row() << " rows inserted" << endl;
                }

                Select s1(o);
                s1 >> o["id"] != "null"
                while (s1.Row()) cout << s1;

                d.Close();
          }
          catch ( OException& e)  {
              cerr << e.Show() << endl;
          }
          catch ( ...)  {
              cerr << " Error ..." << endl;
          }
          return 0;
  }