Dennis McGrath, Sami Aaron, and others:

Traditionally, when you use the UNLOAD STRUCTURE or UNLOAD ALL commands,
R:BASE engine generates a bunch of R:BASE specific code, including
CHARacter Settings, DISCONNECT statement, STATICDB, ROWLOCK, FASTLOCK
settings, CREATE SCHEMA, CREATE TABLE and so on ... Then, often we have
to edit the text file, clean up the extra stuff and only leave the SQL
commands that are necessary to build the table or view.

Practically, if you are using the UNLOAD STRUCTURE FOR ...  command,
it's because you want to transfer the TABLE or VIEW to a different
database that already exists and that usually has a different name.
All you really want is to transfer the table or view structure.

Did you know that using the enhanced UNLOAD command in the latest
versions of R:BASE 7.6, R:BASE C/S:I 7.6 and Turbo V-8, now you can
UNLOAD the STRUCTURE that would generate only the SQL commands
necessary to rebuild the table or view in question (with all rights,
comments, rules, etc), but none of the extra stuff (CREATE SCHEMA or
R:BASE settings)? That way, you could simply RUN the resulting file
without having to edit it.

Traditional Command: UNLOAD STRUCTURE FOR tablename Output includes:

 • Character Settings
 • DISCONNECT Statement
 • Define Settings for STATICDB,  ROWLOCKS and FASTLOCK
 • CREATE Database ... statement
 • CREATE TABLE ... statement
 • ALTER TABLE statements to ADD PRIMARY KEY, etc ...
 • CREATE INDEX statements to create INDEXes
 • COMMENT ON statements for each column
 • COMMENT ON statement for table

Traditional Command: UNLOAD ALL FOR tablename Output includes:

• Character Settings
• DISCONNECT Statement
• Define Settings for STATICDB,  ROWLOCKS and FASTLOCK
• CREATE Database ... statement
• CREATE TABLE ... statement
• Define Settings for CASE, AUTOSKIP, REVERSE, BELL, NULL, DATE YEAR,
  DATE CENTURY, DATE SEQUENCE, TIME SEQUENCE, TOLERANCE, and ZERO
• LOAD statement to load data
• Define Settings for DATE FORMAT, TIME FORMAT, DATE SEQUENCE,
  TIME SEQUENCE
• ALTER TABLE statements to ADD PRIMARY KEY, etc ...
• CREATE INDEX statements to create INDEXes
• COMMENT ON statements for each column
• COMMENT ON statement for table

Enhanced Command:

-- To unload Table Definition only
   UNLOAD STRUCTURE FOR TABLE tablename

-- To unload Table Definition with Constraints, Indexes and Comments
   UNLOAD STRUCTURE FOR tablename NOSCHEMA

Examples:

Example 01:
  -- To unload table structure (Traditional)
  -- See Appendix A for sample output (Page 6)
     CONNECT RRBYW10
     OUTPUT Customer.STR
     UNLOAD STRUCTURE FOR Customer
     OUTPUT SCREEN

Example 02:
  -- To unload table definition for one table
  -- See Appendix B for sample output (Page 8)
     CONNECT RRBYW10
     OUTPUT Customer.STR
     UNLOAD STRUCTURE FOR TABLE Customer
     OUTPUT SCREEN

Example 03:
  -- To unload table definition with Constraints, Indexes and Comments
  -- See Appendix C for sample output (Page 9)
     CONNECT RRBYW10
     OUTPUT Customer.STR
     UNLOAD STRUCTURE FOR Customer NOSCHEMA
     OUTPUT SCREEN

Example 04:
  -- To unload table definition, Constraints, Indexes, Comments and data
  -- See Appendix D for sample output (Page 11)
     CONNECT RRBYW10
     OUTPUT Customer.ALL
     UNLOAD ALL FOR Customer
     OUTPUT SCREEN

Example 05:
  -- To unload table definitions for all tables
  -- See Appendix E for sample output (Page 14)
     CONNECT RRBYW10
     OUTPUT AllTables.STR
     UNLOAD STRUCTURE FOR TABLEDEF
     OUTPUT SCREEN

Example 06:
  --  To unload table definitions, Constraints, Indexes and Comments for
  --  all tables
  --  See Appendix F for sample output (Page 19)
      CONNECT RRBYW10
      OUTPUT AllTables.STR
      UNLOAD STRUCTURE FOR TABLES
      OUTPUT SCREEN

Example 07:
  -- To unload multiple table definitions, Constraints, Indexes and
  -- Comments using wild card
  -- See Appendix G for sample output (Page 31)
     CONNECT RRBYW10
     OUTPUT MulipleTables.STR
     UNLOAD STRUCTURE FOR TABLES CO%T
  -- CompUsed, Contact and ContactCallNotes

Example 08:
  -- To unload definition of a given View
  -- See Appendix H for sample output (Page 34)
     CONNECT RRBYW10
     OUTPUT CustomerView.VIE
     UNLOAD STRUCTURE FOR VIEW CustomerView
     OUTPUT SCREEN

     CONNECT RRBYW10
     OUTPUT CustomerView.VIE
     UNLOAD STRUCTURE FOR CustomerView NOSCHEMA
     OUTPUT SCREEN

Example 09:
  -- To unload definition of a given View (Traditional)
  -- See Appendix I for sample output (Page 35)
     CONNECT RRBYW10
     OUTPUT CustomerView.VIE
     UNLOAD STRUCTURE FOR CustomerView
     OUTPUT SCREEN

Example 10:
  -- To unload definition of all views
  -- See Appendix J for sample output (Page 36)
     CONNECT RRBYW10
     OUTPUT AllViews.VIE
     UNLOAD STRUCTURE FOR VIEWS
     OUTPUT SCREEN

Example 11:
  -- To unload definition of multiple views using wild card
  -- See Appendix K for sample output (Page 40)
     CONNECT RRBYW10
     OUTPUT MulipleViews.VIE
     UNLOAD STRUCTURE FOR VIEWS New%
     OUTPUT SCREEN
  -- This will unload structure for all views starting with
  -- "New", such as:
  -- NewContact, NewCustomer, NewEmployee, NewInvoiceDetails, and
  -- NewInvoiceHeader


You may also use the Database Explorer to UNLOAD STRUCTURE using
these enhanced commands.

A complete PDF document (40 pages) with all details is also
available at:

From The Edge: http://www.razzak.com/fte/
Topic: Using Enhanced UNLOAD STRUCTURE Command in R:BASE

Enjoy and make sure to have fun!

Very Best R:egards,

Razzak.


Reply via email to