home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / vxcliser.zip / README2.INF (.txt) < prev    next >
OS/2 Help File  |  1988-01-08  |  44KB  |  1,338 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Updating from version 2.1A ΓòÉΓòÉΓòÉ
  3.  
  4. If you are updating to version 2.1B from 2.1A, you should be aware of the 
  5. following changes to VX-REXX: 
  6.  
  7. o If you are using DB2/2 you must rebind your databases. 
  8.  
  9.   The bind files have changed in VX-REXX version 2.1B. You must rebind VX-REXX 
  10.   to your databases. Use the BINDDBI command to do this. 
  11.  
  12.   In version 2.1, the database controls came with a number of bind (.BND) 
  13.   files. In version 2.1A, they were replaced with a single bind file called 
  14.   WDB221A.BND. In version 2.1B, the bind file is called WDB221B.BND. 
  15.  
  16.  
  17. ΓòÉΓòÉΓòÉ 2. Commonly Asked Questions ΓòÉΓòÉΓòÉ
  18.  
  19.  Database topics: 
  20.  
  21.  o How to I install the sample database on... 
  22.  
  23.     - a remote DB2/2 server? 
  24.     - a remote Watcom SQL server? 
  25.     - a remote DB2 server? 
  26.     - a remote AS/400 server? 
  27.  
  28.  o How to I create a new database on... 
  29.  
  30.     - a remote DB2/2 server? 
  31.     - a remote remote Watcom SQL server? 
  32.     - a remote DB2 server? 
  33.     - a remote AS/400 server? 
  34.  
  35.  o How do I bind to DB2/2 databases? 
  36.  o How do I bind to a remote host using DDCS/2? 
  37.  o How do I specify the qualifier for the system tables when using DB2? 
  38.  o Why can't I connect to a remote DB2/2 database? 
  39.  o Why can't I connect to a DB2/2 database using ODBC? 
  40.  o Why can't I list tables in a remote DB2/2 database? 
  41.  o How do I control how rows are locked when using DB2/2? 
  42.  o What is a "Timestamp conflict"? 
  43.  o How can I suppress the startup message from Watcom SQL? 
  44.  o What does "Unable to initialize DBI" mean? 
  45.  o What does "SQL0204N 'USERID.xxxx' is an undefined name" mean? 
  46.  
  47.  Charting topics: 
  48.  
  49.  o How do I create XY charts? 
  50.  
  51.  
  52. ΓòÉΓòÉΓòÉ <hidden> Creating remote databases with DB2/2 ΓòÉΓòÉΓòÉ
  53.  
  54.  Remote databases must be created on the database server machine. You cannot 
  55.  create new databases from a client workstation. To create a new database on a 
  56.  DB2/2 server, follow these steps: 
  57.  
  58.   1. Install the DB2/2 server software on the server machine. 
  59.  
  60.      (If the software has already been installed, you can omit this step.) 
  61.  
  62.   2. Start the DB2/2 Directory Tool program. 
  63.  
  64.   3. Select System Database from the Directory menu. 
  65.  
  66.      A list of existing databases will be shown. 
  67.  
  68.   4. Select Create from the Database menu. 
  69.  
  70.      A prompt for the database name and drive letter will appear. 
  71.  
  72.   5. Fill in the database name and drive letter, then press Create. 
  73.  
  74.  Once the database has been created, you have to catalog the new database on 
  75.  the client computers, and bind VX-REXX to the database. 
  76.  
  77.  See also: 
  78.  
  79.  o Binding databases 
  80.  o Binding databases through DDCS/2 
  81.  
  82.  
  83. ΓòÉΓòÉΓòÉ <hidden> Creating remote databases with DB2 ΓòÉΓòÉΓòÉ
  84.  
  85.  Remote databases must be created on the database server machine. You cannot 
  86.  create new databases from a client workstation. To create a new database on a 
  87.  DB2 server, follow these steps: 
  88.  
  89.   1. Create a new database on the DB2 server. Follow the instructions that came 
  90.      with the sever software to do this. 
  91.  
  92.   2. On the client workstation, catalog the new database. 
  93.  
  94.   3. On the client workstation, bind VX-REXX to the database using the BINDDBI 
  95.      utility. 
  96.  
  97.      See also: 
  98.  
  99.     o Binding databases 
  100.     o Binding databases through DDCS/2 
  101.     o Specifying the system table qualifier with DB2 
  102.  
  103.  
  104. ΓòÉΓòÉΓòÉ <hidden> Creating remote databases with Watcom SQL ΓòÉΓòÉΓòÉ
  105.  
  106.  Remote databases must be created on the database server machine. You cannot 
  107.  create new databases from a client workstation. To create a new database on a 
  108.  Watcom SQL server, follow these steps: 
  109.  
  110.   1. Install the Watcom SQL server software on the server machine. 
  111.  
  112.      (If the software has already been installed, you can omit this step.) 
  113.  
  114.   2. Create a new database using the DBINIT command. From an OS/2 command line 
  115.      type 
  116.  
  117.               dbinit database
  118.  
  119.      where database is the name of the database you want to create. 
  120.  
  121.   3. To start the database server, type 
  122.  
  123.               dbserver database
  124.  
  125.      at an OS/2 command line prompt. 
  126.  
  127.  If the Watcom SQL client software is correctly installed, you should be able 
  128.  to access the database. 
  129.  
  130.  
  131. ΓòÉΓòÉΓòÉ <hidden> Creating remote databases on an AS/400 ΓòÉΓòÉΓòÉ
  132.  
  133.  Remote databases must be created on the remote host machine. You cannot create 
  134.  new databases from a client workstation. To create a new database on an 
  135.  AS/400, follow these steps: 
  136.  
  137.   1. Install the database software on the AS/400. 
  138.  
  139.      (If the software has already been installed, you can omit this step.) 
  140.  
  141.   2. Before you create a remote database, a collection must be created on the 
  142.      AS/400 with the same name as the userid that will be used when creating 
  143.      the database. You can do this with a command like: 
  144.  
  145.           CREATE COLLECTION USERID
  146.  
  147.   3. Create the new database by following the instructions supplied with your 
  148.      AS/400 database software. 
  149.  
  150.   4. On the AS/400, create a Watcom library. This can be done with a command 
  151.      like: 
  152.  
  153.           CRTLIB LIB(WATCOM) TYPE(*PROD) TEXT('WATCOM SQL Packages Library') AUT(*USE)
  154.  
  155.   5. Catalog the new database on the client workstation. Refer to the DB2/2 
  156.      Guide for more information about cataloging. 
  157.  
  158.   6. Bind VX-REXX to the new database. You can do this with the BINDDBI program 
  159.      that comes with VX-REXX. Type the following from an OS/2 command line: 
  160.  
  161.           BINDDBI -dWSAMPLE -fUSA -kALL
  162.  
  163.      See Using BINDDBI. for more information on command line options for 
  164.      BINDDBI. 
  165.  
  166.  See also: 
  167.  
  168.  o Binding databases through DDCS/2 
  169.  o Specifying the system table qualifier with DB2 
  170.  
  171.  
  172. ΓòÉΓòÉΓòÉ <hidden> Installing the sample database on a DB2/2 remote server ΓòÉΓòÉΓòÉ
  173.  
  174.  All of the sample programs in the VX-REXX Database Samples folder assume you 
  175.  have installed the VX-REXX sample database. To install the sample database, 
  176.  follow these steps: 
  177.  
  178.   1. On the server machine, use the DB2/2 Directory Tool to create a new 
  179.      (empty) database. Name the database WSAMPLE. 
  180.  
  181.   2. On the client workstation, catalog the new remote database. (See 
  182.      Connecting to a remote DB2/2 database for details.) 
  183.  
  184.   3. On the client workstation, start the VX-REXX Sample Database Generator 
  185.      program. 
  186.  
  187.      (The icon for this program is in the Database Samples folder, which is in 
  188.      the Watcom VX-REXX folder.) 
  189.  
  190.   4. Set the Database field to IBM DB2/2 (network). 
  191.  
  192.   5. Press Install and follow any other instructions the program gives you. 
  193.  
  194.  
  195. ΓòÉΓòÉΓòÉ <hidden> Installing the sample database on a remote DB2 server ΓòÉΓòÉΓòÉ
  196.  
  197.  All of the sample programs in the VX-REXX Database Samples folder assume you 
  198.  have installed the VX-REXX sample database. To install the sample database, 
  199.  follow these steps: 
  200.  
  201.   1. On the server machine, create a new (empty) database. Name the database 
  202.      WSAMPLE. 
  203.  
  204.   2. On the client workstation, catalog the new remote database. (See 
  205.      Connecting to a remote DB2/2 database for details.) 
  206.  
  207.   3. On the client workstation, start the VX-REXX Sample Database Generator 
  208.      program. 
  209.  
  210.      (The icon for this program is in the Database Samples folder, which is in 
  211.      the Watcom VX-REXX folder.) 
  212.  
  213.   4. Set the Database field to IBM DB2/2 (network). 
  214.  
  215.   5. Press Install and follow any other instructions the program gives you. 
  216.  
  217.  
  218. ΓòÉΓòÉΓòÉ <hidden> Installing the sample database on a Watcom SQL remote server ΓòÉΓòÉΓòÉ
  219.  
  220.  All of the sample programs in the VX-REXX Database Samples folder assume you 
  221.  have installed the VX-REXX sample database. To install the sample database, 
  222.  follow these steps: 
  223.  
  224.   1. On the server machine, use Watcom SQL's DBINIT program to create a new 
  225.      (empty) database called WSAMPLE. The following command line will do this: 
  226.  
  227.               DBINIT WSAMPLE
  228.  
  229.   2. Start the database server. Type 
  230.  
  231.               DBSERVER WSAMPLE
  232.  
  233.   3. On the client computer, start the VX-REXX Sample Database Generator 
  234.      program. 
  235.  
  236.      (The icon for this program is in the Database Samples folder, which is in 
  237.      the Watcom VX-REXX folder.) 
  238.  
  239.   4. Set the Database field to Watcom SQL (network). 
  240.  
  241.   5. Press Install and follow any other instructions the program gives you. 
  242.  
  243.  
  244. ΓòÉΓòÉΓòÉ <hidden> Installing the sample database on an AS/400 ΓòÉΓòÉΓòÉ
  245.  
  246.  All of the sample programs in the VX-REXX Database Samples folder assume you 
  247.  have installed the VX-REXX sample database. To install the sample database, 
  248.  follow these steps: 
  249.  
  250.   1. Create a collection on the AS/400 with the same name as the userid that 
  251.      will be used when creating the database. You can do this with a command 
  252.      like: 
  253.  
  254.           CREATE COLLECTION USERID
  255.  
  256.   2. Create the new (empty) database by following the instructions supplied 
  257.      with your AS/400 database software. 
  258.  
  259.   3. On the AS/400, create a Watcom library. You can do this with a command 
  260.      like: 
  261.  
  262.           CRTLIB LIB(WATCOM) TYPE(*PROD) TEXT('WATCOM SQL Packages Library') AUT(*USE)
  263.  
  264.   4. Catalog the new database on the client workstation. Refer to the DB2/2 
  265.      Guide for more information about cataloging. 
  266.  
  267.   5. On the client workstation, start the VX-REXX Sample Database Generator 
  268.      program. 
  269.  
  270.      (The icon for this program is in the Database Samples folder, which is in 
  271.      the Watcom VX-REXX folder.) 
  272.  
  273.   6. Set the Database field to IBM DB2/2 (network). 
  274.  
  275.   7. Press Install and follow any other instructions the program gives you. 
  276.  
  277.      Note:  Some versions of DB/400 do not support foreign keys. The Sample 
  278.      Database Generator attempts to add foreign key information to the 
  279.      database. If the program cannot set up the foreign keys, it will alert you 
  280.      of this error. Press the Ignore button to ignore the error. 
  281.  
  282.  
  283. ΓòÉΓòÉΓòÉ <hidden> Accessing tables in a remote DB2/2 database ΓòÉΓòÉΓòÉ
  284.  
  285.  You must bind VX-REXX to each database you want to use before you access it. 
  286.  VX-REXX includes the BINDDBI program to do this. For example, to bind the 
  287.  database called WSAMPLE to VX-REXX, type 
  288.  
  289.   BINDDBI -dWSAMPLE
  290.  
  291.  If the database appears empty from the client workstation, it could be because 
  292.  VX-REXX has not been bound to the database. 
  293.  
  294.  Note:  If you are binding to a database on a host database via DDCS/2, you 
  295.  must specify the -f and -k parameters to BINDDBI. For details on these 
  296.  parameters, see Using BINDDBI in the Database Objects Guide. 
  297.  
  298.  
  299. ΓòÉΓòÉΓòÉ <hidden> Binding to a remote host through DDCS/2 ΓòÉΓòÉΓòÉ
  300.  
  301.  To bind to a remote host through DDCS/2 you must first bind the local DB2/2 
  302.  utilities to the remote host database management system. To do this, you must 
  303.  run the DDCS/2 utility SQLJBIND. For example, to bind to a database called 
  304.  FILMS when DB2/2 is installed in the SQLLIB directory on drive C, you would 
  305.  type: 
  306.  
  307.     SQLJBIND FILMS C SQLLIB
  308.  
  309.  For more information, please refer to the DDCS/2 Guide. 
  310.  
  311.  After running SQLJBIND, use the BINDDBI utility to bind to your database. 
  312.  
  313.  Note:  The -f and -k parameters are required with BINDDBI when binding to a 
  314.  database which is accessed using DDCS/2. 
  315.  
  316.  For example, to bind to the database called FILMS with United States date and 
  317.  time format, with full blocking and fetch-only cursors type: 
  318.  
  319.   BINDDBI -dFILMS -fUSA -kALL
  320.  
  321.  The above commands grant execute permissions to all users.  Specifying the -u 
  322.  parameter with a user id or group id will grant permissions only to that user 
  323.  or group. 
  324.  
  325.  
  326. ΓòÉΓòÉΓòÉ <hidden> Specifying the system table qualifier with DB2 ΓòÉΓòÉΓòÉ
  327.  
  328.  Various implementations of DB2 use different system table qualifiers. You can 
  329.  have the database objects use a particular system table qualifier by 
  330.  specifying "system=..." in the ConnectionParms property of the Connection 
  331.  object. 
  332.  
  333.  For example, to use a database with system tables which are qualified by 
  334.  SYSTEM, you would specify 
  335.  
  336.   system=SYSTEM;
  337.  
  338.  in the ConnectionParms property of the Connection object. 
  339.  
  340.  This also allows VX-REXX programs to read system views that have a unique 
  341.  qualifier created by the database administrator if access is restricted to the 
  342.  real system tables. 
  343.  
  344.  The default system table qualifier is SYSIBM, which is used with DB2/2. 
  345.  
  346.  
  347. ΓòÉΓòÉΓòÉ <hidden> Connecting to a remote DB2/2 database ΓòÉΓòÉΓòÉ
  348.  
  349.  If your remote database does not appear in the list of databases, or you 
  350.  cannot connect to it, check the following: 
  351.  
  352.  o Have you installed the client DB2/2 software on your workstation? 
  353.  
  354.    You must install one of the following configurations on your workstation in 
  355.    order to access remote databases: client, client with local databases, or 
  356.    server. You do no have to install the server on your workstation unless you 
  357.    want other people to have access to your local databases. 
  358.  
  359.  o Have you cataloged the database on the workstation? 
  360.  
  361.    To use a remote DB2/2 database, you must tell the DB2/2 client software 
  362.    about the remote database. To do this, you catalog the database on the 
  363.    workstation. 
  364.  
  365.    For example, suppose you have created a remote database called REMOTEDB on a 
  366.    machine called DBSERVER. To catalog this database, you would take the 
  367.    following steps on the client workstation: 
  368.  
  369.      1. Start the DB2/2 Directory Tool program. 
  370.  
  371.      2. Open the list of databases by choosing System Database from the 
  372.         Directory menu. 
  373.  
  374.      3. Select Catalog from the Database menu to add a new database to the 
  375.         catalog. 
  376.  
  377.         The program will prompt you for information about the remote database. 
  378.  
  379.      4. Type REMOTEDB in the Alias and Database fields. Set the Workstation 
  380.         field to DBSERVER. 
  381.  
  382.      5. Press Catalog to add the remote database to the workstation's catalog. 
  383.  
  384.  o Can you access the database using the DB2/2 Query Manager utility? 
  385.  
  386.    DB2/2's Query Manger lets you view local and remote DB2/2 databases. If you 
  387.    cannot connect to a remote DB2/2 database using the VX-REXX database 
  388.    objects, try viewing the database using the Query Manger. If the Query 
  389.    Manager does not work either, one of the following is likely to be the 
  390.    cause: 
  391.  
  392.     - The network transport services (NETBIOS or APPC) are not configured 
  393.       correctly. 
  394.  
  395.     - The DB2/2 server software is not running on the remote machine. 
  396.  
  397.     - The DB2/2 client software is not installed on the local computer. 
  398.  
  399.  
  400. ΓòÉΓòÉΓòÉ <hidden> Connecting to a DB2/2 database using ODBC ΓòÉΓòÉΓòÉ
  401.  
  402.  If you cannot connect to a DB2/2 database using ODBC, and have specified the 
  403.  correct userid and password in the connection object, make sure that the 
  404.  userid and password are in upper case. When using ODBC, the userid and 
  405.  password are case sensitive but DB2/2 requires them to be in upper case. 
  406.  
  407.  
  408. ΓòÉΓòÉΓòÉ <hidden> Controlling how rows are locked when using DB2/2 ΓòÉΓòÉΓòÉ
  409.  
  410.  How rows in a given DB2/2 database are locked by VX-REXX applictions is set 
  411.  when VX-REXX is bound to the database by using the -iIsolation and -kBlocking 
  412.  parameters with BINDDBI. 
  413.  
  414.  To lock all rows in the current table, set the Isolation parameter to RR. 
  415.  
  416.  To stop row locking, in most cases, set the Isolation parameter to UR and set 
  417.  the Blocking parameter to ALL. 
  418.  
  419.  For example, to use minimal record locking on the database called FILMS, bind 
  420.  with the command: 
  421.  
  422.   BIND -dFILMS -kALL -iUR
  423.  
  424.  By default, the currently fetched row will be locked. This means that other 
  425.  applications accessing the same database table will not be able to update or 
  426.  delete the row currently fetched by the VX-REXX application. The lock on the 
  427.  row is released when a new row is fetched or when the query is closed. 
  428.  
  429.  Note:  Because of the caching system used by VX-REXX when accessing the 
  430.  database, the current row of a query object may not be the currently fetched 
  431.  row, which is managed by DB2/2 itself. For example, if the query object is 
  432.  requested to move to a row which is already in the cache, the currently 
  433.  fetched row (according to DB2/2) will not be changed because a fetch on the 
  434.  database itself will not be performed. To ensure that the query object's 
  435.  current row is the currently fetched row according to DB2/2, the query 
  436.  object's CacheSize property may be set to 1. However, this may result in 
  437.  decreased performance on tables with more than 1000 rows. 
  438.  
  439.  Note:  If a VX-REXX DB2/2 application attempts to update or delete a row which 
  440.  is locked, the application will appear to freeze until the lock is released. 
  441.  This is because DB2/2 holds the request for update or delete until the lock is 
  442.  released. 
  443.  
  444.  
  445. ΓòÉΓòÉΓòÉ <hidden> Timestamp conflicts ΓòÉΓòÉΓòÉ
  446.  
  447.  If you get an error message that mentions a "timestamp conflict", the most 
  448.  likely cause is that your VX-REXX database DLLs are different that those that 
  449.  were originally bound to the database. Try binding VX-REXX to the database 
  450.  again. If the error persists, contact Watcom technical support. 
  451.  
  452.  
  453. ΓòÉΓòÉΓòÉ <hidden> Suppressing Watcom SQL's startup message ΓòÉΓòÉΓòÉ
  454.  
  455.  The VX-REXX connection object automatically starts the Watcom SQL engine when 
  456.  the Connect method is invoked if the engine is not already running. When 
  457.  started this way, all messages from the engine come out in the VX-REXX console 
  458.  window. 
  459.  
  460.  If you want to suppress Watcom SQL's startup message, set the SQLSTART 
  461.  environment variable in your CONFIG.SYS file. If you are using the standalone 
  462.  version of the Watcom SQL, set SQLSTART to 
  463.  
  464.       DBSTART -q %d
  465.  
  466.  If you have the SQL client software installed instead, set SQLSTART to 
  467.  
  468.       DBCLIENT -q %d
  469.  
  470.  
  471. ΓòÉΓòÉΓòÉ <hidden> "Unable to initialize DBI" error ΓòÉΓòÉΓòÉ
  472.  
  473.  If you get the error "Unable to initialize DBI", the VX-REXX controls were not 
  474.  able to load all of their DLLs. Check the following: 
  475.  
  476.  o Make sure the VX-REXX directory is listed in the LIBPATH in your CONFIG.SYS 
  477.    file. 
  478.  
  479.  o If you are using DB2/2, make sure the MUGLIB and SQLLIB directories are in 
  480.    your LIBPATH. 
  481.  
  482.  o If you are accessing your database using ODBC drivers, make sure the 
  483.    directory that contains the ODBC drivers is in your LIBPATH. 
  484.  
  485.  
  486. ΓòÉΓòÉΓòÉ <hidden> SQL0204N Error ΓòÉΓòÉΓòÉ
  487.  
  488.  DB2/2 returns a SQL0204N error when it can't find a named object (a table, 
  489.  view, column, or index). The most common reasons for getting this message are: 
  490.  
  491.  o A quoted name uses a different case. 
  492.  
  493.    DB2/2 respects case in quoted object names. This means that if you create a 
  494.    column with an upper case name (which is the default), and the column name 
  495.    is quoted in a SELECT statment, the name should be in upper case. If the 
  496.    column was created with a lower case name, the name should appear in lower 
  497.    case. 
  498.  
  499.    If an object name is not in quotation marks, DB2/2 will automatically 
  500.    convert it to upper case. 
  501.  
  502.  o The object name is misspelled. 
  503.  
  504.  o The object is not defined in the database. 
  505.  
  506.  
  507. ΓòÉΓòÉΓòÉ <hidden> Creating XY charts ΓòÉΓòÉΓòÉ
  508.  
  509.  The Charting Package in VX-REXX supports a number of chart types, including XY 
  510.  charts. XY charts are different from other chart types in that the data that 
  511.  is charted is a set of points. 
  512.  
  513.  All chart types, including XY charts, view the data as a rectangular grid of 
  514.  values. Think of the chart data as a spreadsheet of values with row and column 
  515.  names. 
  516.  
  517.  Each chart type interprets the rectangular grid of values differently. Bar 
  518.  charts plot each value as a bar, while pie charts plot each value in one 
  519.  column as a slice. 
  520.  
  521.  The chart data can only be set with the SetDataValue method for chart objects. 
  522.  It takes a row index, a column index, and a data value. This uniquely 
  523.  identifies one value in the rectangular grid of chart data. 
  524.  
  525.  XY charts plot points. A point is formed by two values: an X co-ordinate and a 
  526.  Y co-ordinate. Since all charts must take their data from the rectangular 
  527.  grid, XY charts form their data by selecting two columns, one representing X 
  528.  values and the other representing Y values. Hence, each row contains two 
  529.  values which form an XY point. 
  530.  
  531.  For example, suppose you have the following points you want to plot in an XY 
  532.  chart: 
  533.  
  534.       (2,3), (0,1), (-1,4), (5,2)
  535.  
  536.  The following REXX code would set this chart data: 
  537.  
  538.       call SetDataValue 1,  1,  2
  539.       call SetDataValue 1,  2,  3
  540.       call SetDataValue 2,  1,  0
  541.       call SetDataValue 2,  2,  1
  542.       call SetDataValue 3,  1, -1
  543.       call SetDataValue 3,  2,  4
  544.       call SetDataValue 4,  1,  5
  545.       call SetDataValue 4,  2,  2
  546.  
  547.  This is the rectangular grid of values: 
  548.  
  549.       Column 1 (Xs)   Column 2 (Ys)
  550.       =============   =============
  551.             2               3
  552.             0               1
  553.            -1               4
  554.             5               2
  555.  
  556.  A common mistake is to think that a point like (3,4) is set by calling 
  557.  SetDataValue as follows: 
  558.  
  559.       SetDataValue( 3, 4, ...)
  560.  
  561.  Setting the point (3,4) requires two calls to SetDataValue. 
  562.  
  563.  In addition, XY charts allow you to display more than one group of points. You 
  564.  may want to have two sets of points, displayed with two different marker 
  565.  styles. 
  566.  
  567.  By default, the charting package assumes that if you have 'n' columns of data, 
  568.  then you have 'n-1' groups of points, formed by pairing columns 1 and 2, 1 and 
  569.  3, 1 and 4, etc. Hence, the first column is assumed to contain the common X 
  570.  values, while the remainder are assumed to contain the Y values for each 
  571.  group. 
  572.  
  573.  If you are only plotting one group of points, then the default method is most 
  574.  likely correct. But if you are plotting many groups of points, then the 
  575.  default may not be appropriate. You can control which columns form the X and Y 
  576.  pairs in the Group Options page in the Chart Editor. The fields labelled 'X 
  577.  Group' and 'Y Group' let you select which columns are used for each set of 
  578.  points in your XY chart. 
  579.  
  580.  
  581. ΓòÉΓòÉΓòÉ 3. Restrictions ΓòÉΓòÉΓòÉ
  582.  
  583.  Known restrictions/problems: 
  584.  
  585.  Chart object 
  586.  Database objects 
  587.  
  588.  
  589. ΓòÉΓòÉΓòÉ <hidden> Chart object ΓòÉΓòÉΓòÉ
  590.  
  591.  o Problems have been reported with printing charts to Canon Bubble Jet, Epson 
  592.    LQ 510, and IBM 24e printers. These problems are under investigation. 
  593.  
  594.  o Printing charts to the Apple LaserWriter NTX II may result in very large 
  595.    PostScript output which can take a long time to print. This is due to the 
  596.    fact that OS/2 may include redundant font definitions in the output. To work 
  597.    around this problem, install the LaserWriter drivers instead. 
  598.  
  599.  
  600. ΓòÉΓòÉΓòÉ <hidden> Database objects ΓòÉΓòÉΓòÉ
  601.  
  602.  o When connecting to a DB/2 or DB2/2 database, you can have at most 32 open 
  603.    queries. Your project can contain more than 32 queries, but at most 32 can 
  604.    be open at once. This limitation does not apply if you are connected to a 
  605.    Watcom SQL or ODBC database. 
  606.  
  607.  o The following connection object methods do not work when using some older 
  608.    AS/400 or MVS databases: ListTables, ListColumns, ListForeignKeys, and 
  609.    ListIndexes. 
  610.  
  611.  o Database table and column names do not appear in the SQL Editor for some 
  612.    versions of the AS/400 database software. The tables cannot be listed 
  613.    because the standard DB2 system tables are not supported by the AS/400 
  614.    database system. You can work around this problem developing an application 
  615.    against a DB2/2 database and then deploying it on the AS/400. 
  616.  
  617.  
  618. ΓòÉΓòÉΓòÉ 4. Errata ΓòÉΓòÉΓòÉ
  619.  
  620.  Database Objects Guide (July 1994 printing) 
  621.  
  622.  Omissions 
  623.  Corrections and Additions 
  624.  
  625.  Chart Object Guide (July 1994 printing) 
  626.  
  627.  Corrections and Additions 
  628.  
  629.  
  630. ΓòÉΓòÉΓòÉ <hidden> Omissions from the printed manual ΓòÉΓòÉΓòÉ
  631.  
  632. The following functions and methods are described only in the online version of 
  633. the Reference: 
  634.  
  635.  o Connected (connection object) 
  636.  
  637.  
  638. ΓòÉΓòÉΓòÉ <hidden> Corrections and Additions ΓòÉΓòÉΓòÉ
  639.  
  640. The following table lists some corrections and additions to the July 1994 
  641. printing of Database Objects Guide. The number in the left column is the page 
  642. number, and the right column describes the necessary change. 
  643.  
  644.  12                  In step 3 on this page, the last sentence of the paragraph 
  645.                      which begins "If you are using Watcom SQL..." should be 
  646.                      "Set the Userid to dba and the Password to sql." 
  647.  
  648.  27                  The "Closing a query" section should start as follows: 
  649.  
  650.                      "The Close method closes an open query and clears the 
  651.                      values of any objects and variables bound to the query. 
  652.                      The Close method can optionally commit or rollback changes 
  653.                      that have been made to the database. This is equivalent to 
  654.                      calling the Connection object methods Commit and Rollback. 
  655.                      The Commit method ends..." 
  656.  
  657.  28                  The following paragraph should be inserted at the end of 
  658.                      the "Inserting, updating, and deleting rows" section: 
  659.  
  660.                      When updating and deleting database rows, the Query object 
  661.                      uses the most recently fetched values of the bound objects 
  662.                      to generate a WHERE clause that identifies the row being 
  663.                      modified. This means that ALL rows with columns matching 
  664.                      the currently bound ones will be affected. For this 
  665.                      reason, it is recommended that the primary key of the 
  666.                      table be selected in the SQL statement specified in the 
  667.                      SQLStatement property and that corresponding bound objects 
  668.                      be created. This will ensure that the Update and Delete 
  669.                      methods only act on a single database row by including the 
  670.                      primary key in the row identification. If you do not wish 
  671.                      to view values in the primary key, the objects bound to 
  672.                      those columns may be made invisible by setting the Visible 
  673.                      property to 0. 
  674.  
  675.                      The section "Committing and rolling back changes" applies 
  676.                      to connection objects, not query objects. This section 
  677.                      should have been printed at the bottom of page 24. 
  678.  
  679.  31                  Picture boxes should be added to the list of objects that 
  680.                      you can bind. 
  681.  
  682.  67-69               The screen snapshots of the database administrator show 
  683.                      the settings notebook having "Foreign Key" and "Index" 
  684.                      pages. These pages are not included in the settings 
  685.                      notebook. 
  686.  
  687.  70                  Add the following paragraph to the end of the the 
  688.                      "Connect/Disconnect routines" section: 
  689.  
  690.                      "The connect_Fini routine checks for changes to the 
  691.                      database before disconnecting. If changes have been made, 
  692.                      the routine displays a dialog which asks users if they 
  693.                      want to keep the changes or throw them away. If they 
  694.                      decide to keep them, the changes are committed to the 
  695.                      database before disconnecting. Otherwise changes are 
  696.                      thrown away." 
  697.  
  698.                      Delete the last paragraph on the page that begins "The 
  699.                      query_Fini routine checks..." 
  700.  
  701.  80                  The second paragraph in the "Creating a database" section 
  702.                      should read: "If you are using DB2/2, the database 
  703.                      administrator will use the current userid and password if 
  704.                      you are already logged on. If you are not logged on, it 
  705.                      will use USERID and PASSWORD for the userid and password. 
  706.                      If you are using Watcom SQL, DBA and SQL are always used 
  707.                      for the userid and password." 
  708.  
  709.  97                  In VX-REXX version 2.1A, the four bind files (BINDDBI.BND, 
  710.                      DB22CONN.BND, DB22DB.BND, and DB22EXEC.BND) have been 
  711.                      combined into a single bind file called WDB2xxx.BND where 
  712.                      xxx is the VX-REXX version number (21B for version 2.1 
  713.                      patch level B). You are now licensed to distribute the 
  714.                      WDB2xxx.BND file with your applications. See the updated 
  715.                      online version of the Database Objects Guide for the 
  716.                      revised text of this section. 
  717.  
  718.  105                 Add the following to the "Notes" section: "The value of 
  719.                      the variable is cleared when the query is closed." 
  720.  
  721.  111                 The "Notes" should read: "The Close method also clears any 
  722.                      objects and variables bound to the Query object." 
  723.  
  724.  112                 In the "Returns" section, the last sentence should read 
  725.                      "If the method fails, it returns 0 and the Status 
  726.                      connection property contains a printable error." 
  727.  
  728.                      In the "Applies to" section, replace "Query" with 
  729.                      "Connection". 
  730.  
  731.                      In the "Examples" section, the REXX code should read: 
  732.  
  733.                                           ok = VRMethod( "CNCT_Sample", "Commit" )
  734.  
  735.  114                 Add Commit and Rollback to the list of Connection object 
  736.                      methods. 
  737.  
  738.  116                 In VX-REXX version 2.1B, a new "system=..." connection 
  739.                      parameter has been added for use with DB2/2. See the 
  740.                      "Notes" section in the updated online version of the 
  741.                      Database Objects Guide for details. 
  742.  
  743.  118                 The syntax for the DBDelete method has been augmented so 
  744.                      you can pass a stem variable instead of a single record 
  745.                      handle. The "Syntax" section should read: 
  746.  
  747.                      ok = VRMethod( object, "DBDelete", record ) 
  748.  
  749.                      or 
  750.  
  751.                      ok = VRMethod( object, "DBDelete", "reclist." ) 
  752.  
  753.                      Add the following to the "Arguments" section: 
  754.  
  755.     "reclist."          An array of record handles. reclist.0 is the number of 
  756.                         handles. reclist.1 is the first handle, reclist.2 is 
  757.                         the second handle, and so on. 
  758.  
  759.  123                 The syntax for the DBUpdate method has been augmented so 
  760.                      you can pass a stem variable instead of a single record 
  761.                      handle. The "Syntax" section should read: 
  762.  
  763.                      ok = VRMethod( object, "DBUpdate", record ) 
  764.  
  765.                      or 
  766.  
  767.                      ok = VRMethod( object, "DBUpdate", "reclist." ) 
  768.  
  769.                      Add the following to the "Arguments" section: 
  770.  
  771.     "reclist."          An array of record handles. reclist.0 is the number of 
  772.                         handles. reclist.1 is the first handle, reclist.2 is 
  773.                         the second handle, and so on. 
  774.  
  775.  125                 The "Notes" section for the Delete method has been updated 
  776.                      to include more accurate information on the use of primary 
  777.                      keys and deleting multiple database rows. See the updated 
  778.                      online Database Objects Guide for details. 
  779.  
  780.  126                 The "Arguments" section of the DescribeColumns method 
  781.                      under col.i.!type should read: 
  782.  
  783.                      is the database type of the column, one of the following: 
  784.                      DATE, TIME, TIMESTAMP, SMALLINT, INTEGER, FLOAT, DOUBLE, 
  785.                      DECIMAL, STRING, CHAR, VARCHAR, or BINARY. 
  786.  
  787.  126                 The following paragraph should be inserted at the end of 
  788.                      the "Notes" section for the DescribeColumns method: 
  789.  
  790.                      To simplify database interaction, no distinction is made 
  791.                      between LONG VARCHAR and VARCHAR column types. Thus, LONG 
  792.                      VARCHAR columns are returned as type VARCHAR. 
  793.  
  794.  144                 Add the following paragraph to the end of the "Notes" 
  795.                      section for the Query method: 
  796.  
  797.                      "When accessing DB/2 or DB2/2 databases, a maximum of 32 
  798.                      open queries are allowed per project. Your project can 
  799.                      contain more than 32 query objects, but at most 32 can be 
  800.                      open at once." 
  801.  
  802.  146                 The first paragraph at the top of the page should read: 
  803.                      "If this property is null and the database requires a 
  804.                      password, and the Prompt property is Always or If Needed, 
  805.                      the connection object will prompt the user for a password 
  806.                      when the Connect method is invoked." 
  807.  
  808.  147                 Remove the Commit and Rollback from the list of Query 
  809.                      object methods. 
  810.  
  811.  151                 In the description of the Rollback method, a paragraph was 
  812.                      added explaining that for DB2/2, Rollback closes the 
  813.                      queries that use the connection. For Watcom SQL, the 
  814.                      queries stay open. 
  815.  
  816.  152                 In the "Returns" section, the last sentence should read 
  817.                      "If the method fails, it returns 0 and the connection 
  818.                      Status property contains a printable error." 
  819.  
  820.                      In the "Applies to" section, replace "Query" with 
  821.                      "Connection". 
  822.  
  823.                      In the "Examples" section, the REXX code should read: 
  824.  
  825.                                           ok = VRMethod( "CNCT_Sample", "Rollback" )
  826.  
  827.  153                 The following paragraph should be added to the "Notes" 
  828.                      section for the RowData method: 
  829.  
  830.                      Columns which contain NULL data are returned as 
  831.                      uninitialized members in the stem. For example, if the 
  832.                      first column contained NULL data, data.1 would be 
  833.                      uninitialized (set to DATA.1) on return. 
  834.  
  835.  158                 The "Notes" section for the Update method has been updated 
  836.                      to include more accurate information on the use of primary 
  837.                      keys and deleting multiple database rows. See the updated 
  838.                      online Database Objects Guide for details. 
  839.  
  840.  163                 The command line syntax for BINDDBI now includes 
  841.                      parameters to control record locking, the isolation level, 
  842.                      and the time/date format. See the updated online Database 
  843.                      Objects Guide for details. 
  844.  
  845.  165                 The Assignment table should be called Assign. The date due 
  846.                      column in the Assign table should be called datedue 
  847.                      (without a space). The time column in the Class table is 
  848.                      actually called times. The Customer, Product, Orders, and 
  849.                      OrderItem tables were left out of the E-R diagram. They 
  850.                      are included in the online version. 
  851.  
  852.  
  853. ΓòÉΓòÉΓòÉ <hidden> Corrections and Additions ΓòÉΓòÉΓòÉ
  854.  
  855. The following table lists some corrections and additions to the July 1994 
  856. printing of Chart Object Guide. The number in the left column is the page 
  857. number, and the right column describes the necessary change. 
  858.  
  859.  158                 All references in the book to "LegendPosition" should be 
  860.                      changed to "LegendType". 
  861.  
  862.  161                 All references in the book to "LegendType" should be 
  863.                      changed to "LegendControl". 
  864.  
  865.  
  866. ΓòÉΓòÉΓòÉ 5. New since 2.1 ΓòÉΓòÉΓòÉ
  867.  
  868.  
  869. ΓòÉΓòÉΓòÉ 5.1. New in version 2.1b ΓòÉΓòÉΓòÉ
  870.  
  871.  What's new in version 2.1b: 
  872.  
  873.  Design environment 
  874.  
  875.  Chart Editor 
  876.  Query Editor 
  877.  
  878.  Runtime environment 
  879.  
  880.  General 
  881.  Connection object 
  882.  Query object 
  883.  Bound Objects 
  884.  
  885.  General 
  886.  
  887.  Database administrator 
  888.  
  889.  
  890. ΓòÉΓòÉΓòÉ <hidden> General ΓòÉΓòÉΓòÉ
  891.  
  892.  o 
  893.  
  894.  
  895. ΓòÉΓòÉΓòÉ <hidden> Chart Editor ΓòÉΓòÉΓòÉ
  896.  
  897.  o XY, Bubble, and Stock charts no longer affect the legend option when there 
  898.    is no data in the chart. 
  899.  
  900.  o Documentation and drag and drop macros have been updated for the LegendType 
  901.    and LegendPosition options. LegendType has been changed to LegendControl and 
  902.    LegendPosition has been changed to LegendType. 
  903.  
  904.  
  905. ΓòÉΓòÉΓòÉ <hidden> Query Editor ΓòÉΓòÉΓòÉ
  906.  
  907.  o The query editor now handles column names with underscores correctly. 
  908.    Previously, the SQL editor would put the closing quotation mark immediately 
  909.    before the underscore rather than at the end of the column name. 
  910.  
  911.  o The "Changes have been made..." dialog that appears when changes are made to 
  912.    the SQL statement on the test window is now modal to the test window. 
  913.    Previously, clicking on any other query editor window would cause the prompt 
  914.    to be obscured. 
  915.  
  916.  
  917. ΓòÉΓòÉΓòÉ <hidden> General ΓòÉΓòÉΓòÉ
  918.  
  919.  o ODBC support 
  920.  
  921.    Previously, some users could not connect to their database when using the 
  922.    ODBC support. ODBC support is now fully functional. 
  923.  
  924.  
  925. ΓòÉΓòÉΓòÉ <hidden> Bound objects ΓòÉΓòÉΓòÉ
  926.  
  927. The following changes have been made to bound objects: 
  928.  
  929.  o List type bound objects 
  930.  
  931.    The ComboBox, ListBox, Container, and Spin bound objects now ignore the 
  932.    Clear and Reset methods invoked from the query. This is the documented 
  933.    behavior. 
  934.  
  935.  o ComboBox 
  936.  
  937.    Bound ComboBoxes no longer flash and scroll when the query is closed while a 
  938.    record is selected. 
  939.  
  940.  o Container 
  941.  
  942.    Bound Containers in icon view no longer flash and now empty much more 
  943.    quickly when the query is closed. Additionally, records are now initially 
  944.    visible when the query is opened before the container is made visible. 
  945.  
  946.    Bound Containers now support queries with duplicate column names. 
  947.    Previously, duplicate columns would not appear in the container. 
  948.  
  949.    Column names are now reported correctly in bound containers when using DB2 
  950.    to connect to an MVS host database. Previously, using a bound container with 
  951.    a query on an MVS host database would cause unpredictable results. 
  952.  
  953.  
  954. ΓòÉΓòÉΓòÉ <hidden> Connection object ΓòÉΓòÉΓòÉ
  955.  
  956. The following changes have been made to the connection object: 
  957.  
  958.  o Disconnect method with ODBC 
  959.  
  960.    When using ODBC, the "Invalid transaction state" error message no longer 
  961.    appears after invoking the disconnect method. 
  962.  
  963.  o ConnectionParms property 
  964.  
  965.    Previously, a semicolon was required to terminate the connection parameters 
  966.    string (as well as separate different parameters). Now the terminating 
  967.    semicolon is no longer required. 
  968.  
  969.    When using DB2/2, you can now specify "system=..." in the ConnectionParms 
  970.    property to indicate the qualifier to be used when accessing the system 
  971.    tables. 
  972.  
  973.  
  974. ΓòÉΓòÉΓòÉ <hidden> Query object ΓòÉΓòÉΓòÉ
  975.  
  976. The following changes have been made to the query object: 
  977.  
  978.  o BindVar method 
  979.  
  980.    Previously, the BindVar method would cause unpredictable behavior when 
  981.    passed a column name which was not part of the query. Now BindVar returns 0 
  982.    in this case. 
  983.  
  984.  o DescribeColumns method 
  985.  
  986.    The DescribeColumns method now returns the correct column type for each 
  987.    column. Previously, the returned column type was always STRING. 
  988.  
  989.    Column names are now reported correctly by the DescribeColumns method when 
  990.    using DB2 to connect to an MVS host database. Previously, using the 
  991.    DescribeColumns method with a query on an MVS host database would cause 
  992.    unpredictable results. 
  993.  
  994.  o Update, Insert, and Delete methods 
  995.  
  996.    The Update, Insert, and Delete methods now work with queries that select 
  997.    string columns of length greater than 254 characters. Previously, attempting 
  998.    to update a query which selected a long string column would result in an SQL 
  999.    error from DB2/2. 
  1000.  
  1001.  
  1002. ΓòÉΓòÉΓòÉ <hidden> Database administrator ΓòÉΓòÉΓòÉ
  1003.  
  1004.  o The database administrator now supports columns of type LONG VARCHAR. 
  1005.    Previously, selecting LONG VARCHAR as the column type would prevent you from 
  1006.    applying the changes or closing the settings notebook. 
  1007.  
  1008.  
  1009. ΓòÉΓòÉΓòÉ 5.2. New in version 2.1a ΓòÉΓòÉΓòÉ
  1010.  
  1011.  What's new in version 2.1a: 
  1012.  
  1013.  Design environment 
  1014.  
  1015.  General 
  1016.  Chart Editor 
  1017.  Query Editor 
  1018.  
  1019.  Runtime environment 
  1020.  
  1021.  General 
  1022.  Connection object 
  1023.  Query object 
  1024.  BoundObjects 
  1025.  Chart object 
  1026.  
  1027.  General 
  1028.  
  1029.  BINDDBI 
  1030.  Sample database generator 
  1031.  Chart printing sample 
  1032.  Database administrator 
  1033.  
  1034.  
  1035. ΓòÉΓòÉΓòÉ <hidden> General ΓòÉΓòÉΓòÉ
  1036.  
  1037.  o Chart drag and drop coding 
  1038.  
  1039.    Some minor errors in the drag and drop coding macros for chart objects were 
  1040.    fixed. Also, the help buttons for these dialogs now work. 
  1041.  
  1042.  o Bound objects drag and drop coding 
  1043.  
  1044.    Objects that can be bound now provide drag and drop coding support for the 
  1045.    Query and QueryColumns properties, plus their database related methods. 
  1046.  
  1047.  o Personal REXX 
  1048.  
  1049.    Previously, the database objects would not appear in the tool palette when 
  1050.    using Personal REXX. Now they appear. 
  1051.  
  1052.  
  1053. ΓòÉΓòÉΓòÉ <hidden> Chart Editor ΓòÉΓòÉΓòÉ
  1054.  
  1055.  o Charts in the chart gallery now accurately reflect their chart type. 
  1056.  
  1057.  o Undoing a change, and then loading a new chart no longer causes the chart 
  1058.    editor to crash. 
  1059.  
  1060.  o Printer setup options now work. 
  1061.  
  1062.  o Selecting Edit Chart from a chart's context menu when the chart editor is 
  1063.    already open now brings the open chart editor to the front. 
  1064.  
  1065.  o Pressing F1 for help in the chart editor and chart gallery now work. 
  1066.  
  1067.  
  1068. ΓòÉΓòÉΓòÉ <hidden> Query Editor ΓòÉΓòÉΓòÉ
  1069.  
  1070.  o The query editor no longer leaves a blank line at the end of your Init and 
  1071.    Fini sections when it is used. 
  1072.  
  1073.  o The query editor now adds the calls to QRY_object_INIT and CNCT_object_INIT, 
  1074.    and the QRY_object_FINI and CNCT_object_FINI in the correct order in the 
  1075.    Init and Fini sections of your code. 
  1076.  
  1077.  o The query editor no longer allows you to change the name of the query object 
  1078.    to the name of an object that already exists. The name now must be unique. 
  1079.  
  1080.  o An option has been added to the Query Editor to leave the connection open 
  1081.    when it quits. This is an optimization so that opening the query editor 
  1082.    repeatedly is faster. To turn this option on, check the Stay connected box 
  1083.    in the Query Editor's Options window. Note that opening the Connection 
  1084.    Editor always causes the connection to be closed regardless of the Stay 
  1085.    connected setting. 
  1086.  
  1087.  o If you are using a DB2/2 database but have not bound VX-REXX to the 
  1088.    database, the SQL Editor now alerts you of this condition. Previously, it 
  1089.    would not report the error until you tried to test the SQL statement. 
  1090.  
  1091.  o Previously, the Query Editor would generate bound entry fields whose names 
  1092.    contained blanks if the columns to which they were bound contained blanks in 
  1093.    their names. The Query Editor now removes the blanks in the generated object 
  1094.    names. 
  1095.  
  1096.  
  1097. ΓòÉΓòÉΓòÉ <hidden> General ΓòÉΓòÉΓòÉ
  1098.  
  1099.  o Improved memory management 
  1100.  
  1101.    32Kb wide columns are supported and less memory is used for columns which 
  1102.    are not completely filled (i.e. they contain less data than their column 
  1103.    width allows). 
  1104.  
  1105.  o Column data 
  1106.  
  1107.    Previously column data would sometimes return incorrect values. This problem 
  1108.    has been fixed. 
  1109.  
  1110.  o Logon window 
  1111.  
  1112.    The entry fields in the Connection object's logon dialog used to have a text 
  1113.    limit of 32 characters. The limit is now 260 characters. 
  1114.  
  1115.  
  1116. ΓòÉΓòÉΓòÉ <hidden> Bound objects ΓòÉΓòÉΓòÉ
  1117.  
  1118. The following changes have been made to bound objects: 
  1119.  
  1120.  o DescriptiveText objects 
  1121.  
  1122.    You can now perform updates on queries that have descriptive text bound to 
  1123.    them. Also, changing the Caption of a bound descriptive text object now 
  1124.    notifies the query that data has changed. 
  1125.  
  1126.  o Container object 
  1127.  
  1128.     - If a bound container contains any user defined records when its query is 
  1129.       opened, they are now deleted. Also, bound containers' DBDelete, DBInsert, 
  1130.       DBReset, and DBUpdate now return correct error information through the 
  1131.       VRError function even if the query object is invisible. 
  1132.  
  1133.     - Calling the DBInsert method now refreshes the records in the container. 
  1134.       Previously, the container was not refreshed. 
  1135.  
  1136.  
  1137. ΓòÉΓòÉΓòÉ <hidden> Connection object ΓòÉΓòÉΓòÉ
  1138.  
  1139. The following changes have been made to the connection object: 
  1140.  
  1141.  o Logon prompting for DB2/2 
  1142.  
  1143.    If the Connection object is set to prompt if needed, and the password or 
  1144.    userid are not set, the user is no longer prompted for these values if you 
  1145.    are using DB2/2 and are already logged on, or if you are accessing an ODBC 
  1146.    database that does not require these values. 
  1147.  
  1148.  o ListColumns method 
  1149.  
  1150.     - Previously column data would sometimes return incorrect values when using 
  1151.       a remote DB2/2 or DB/2 database. This problem has been fixed. 
  1152.     - Under Watcom SQL, columns with date information in them are no longer 
  1153.       reported as containing timestamp information. They are reported as 
  1154.       containing date information. Also, ListColumns now returns 0 when there 
  1155.       were no columns found. The stem variable (e.g. Columns.) still reports 
  1156.       that zero columns were found (i.e. Columns.0 = 0). 
  1157.  
  1158.  o ListIndexes method 
  1159.  
  1160.    The ListIndexes method would sometimes return a given index multiple times, 
  1161.    with each occurrence containing only some of the columns in the index. Now 
  1162.    indexes are returned correctly. 
  1163.  
  1164.  o Rollback method 
  1165.  
  1166.    Doing a rollback on a DB2/2 query now causes the query to be closed 
  1167.    automatically.  This avoids an error when trying to fetch a new record after 
  1168.    a rollback. 
  1169.  
  1170.  
  1171. ΓòÉΓòÉΓòÉ <hidden> Query object ΓòÉΓòÉΓòÉ
  1172.  
  1173. The following changes have been made to the query object: 
  1174.  
  1175.  o The number of open DB2/2 queries has been raised from 16 to 32. 
  1176.  
  1177.  o Update method 
  1178.  
  1179.    Previously, if you were to search on a column, and then change all matching 
  1180.    rows so that they no longer fulfill the search parameters, and then invoke 
  1181.    the Update method, an error would occur. Now the bound objects will be 
  1182.    cleared, indicating an empty result table. 
  1183.  
  1184.  
  1185. ΓòÉΓòÉΓòÉ <hidden> Chart object ΓòÉΓòÉΓòÉ
  1186.  
  1187. The following changes have been made to the chart object: 
  1188.  
  1189.  o The Y2 scale and the legend (if it is placed on the right) no longer 
  1190.    intersect. 
  1191.  
  1192.  o Changing the mouse pointer for the chart's parent window object now 
  1193.    maintains that pointer when the mouse is over the chart object. 
  1194.  
  1195.  o Setting the QueryDataFormat property to CrossTab when the chart data is not 
  1196.    columnar now works. 
  1197.  The chart object now works under the Japanese version of OS/2 (version 2.1J). 
  1198.  
  1199.  
  1200. ΓòÉΓòÉΓòÉ <hidden> BINDDBI.EXE ΓòÉΓòÉΓòÉ
  1201.  
  1202. The following changes have been made to the BINDDBI utility: 
  1203.  
  1204.  o New command line parameters have been added to specify the time and date 
  1205.    format, the type of record locking, and the isolation level. See the updated 
  1206.    online Database Objects Guide for details. 
  1207.  
  1208.  o BINDDBI should now work with older implementations of DB2 on MVS and AS/400 
  1209.    systems. 
  1210.  
  1211.  
  1212. ΓòÉΓòÉΓòÉ <hidden> Sample database generator ΓòÉΓòÉΓòÉ
  1213.  
  1214.  o All column and table names in the sample database are now 8 charaters long 
  1215.    or less. If you are upgrading from VX-REXX 2.1, you will have to recreate 
  1216.    the sample database for the new sample programs to work. 
  1217.  
  1218.  o The sample database generator can now add tables to remote databases. 
  1219.  
  1220.  o Improved error checking has been added. 
  1221.  
  1222.  
  1223. ΓòÉΓòÉΓòÉ <hidden> Chart printing sample ΓòÉΓòÉΓòÉ
  1224.  
  1225.  o The job properties dialog now saves job property information. This 
  1226.    information is kept for each printer. 
  1227.  
  1228.  
  1229. ΓòÉΓòÉΓòÉ <hidden> Database administrator ΓòÉΓòÉΓòÉ
  1230.  
  1231.  o When connecting to a newly created DB2/2 database, the userid and password 
  1232.    fields are now initialized properly. 
  1233.  
  1234.  o DB2/2 does not allow column names with mixed case, so the database 
  1235.    administrator no longer accepts mixed case column names. 
  1236.  
  1237.  o Decimal fields can now have a scale of 0. 
  1238.  
  1239.  o Added a new refresh button to Privileges page that performs the same 
  1240.    function as the reset button, except it is enabled before a change is made. 
  1241.  
  1242.  o Foreign Key and Index Pages fields were added to the Table settings 
  1243.    notebook. 
  1244.  
  1245.  o The Help menu was improved, and complete context sensitive help was added. 
  1246.  
  1247.  o Allows drag and drop foreign key creation. 
  1248.  
  1249.  o The Primary Key page is now enabled for Watcom SQL databases. 
  1250.  
  1251.  o Added Packages page to Table settings notebook to track package dependencies 
  1252.    in DB2/2 databases. 
  1253.  
  1254.  
  1255. ΓòÉΓòÉΓòÉ 6. Notices ΓòÉΓòÉΓòÉ
  1256.  
  1257.  Copyright 
  1258.  Disclaimer 
  1259.  Trademarks 
  1260.  
  1261.  
  1262. ΓòÉΓòÉΓòÉ <hidden> Copyright ΓòÉΓòÉΓòÉ
  1263.  
  1264. Copyright 1994 by Watcom International Corporation All rights reserved. No part 
  1265. of this publication may be reproduced or used in any form or by any means -- 
  1266. graphic, electronic, or mechanical, including photocopying, recording, taping 
  1267. or information storage and retrieval systems -- without written permission of 
  1268. the Watcom International Corporation. 
  1269.  
  1270.  
  1271. ΓòÉΓòÉΓòÉ <hidden> Disclaimer ΓòÉΓòÉΓòÉ
  1272.  
  1273. Watcom (Watcom International Corporation and all of its subsidiaries)  makes no 
  1274. representation or warranty with respect to the adequacy of this documentation 
  1275. or the programs which it describes for any particular purpose or with respect 
  1276. to its adequacy to produce any particular result. In no event shall Watcom, its 
  1277. employees, its contractors or the authors of this documentation be liable for 
  1278. special, direct, indirect or consequential damages, losses, costs, charges, 
  1279. claims, demands or claim for lost profits, fees or expenses of any nature or 
  1280. kind. 
  1281.  
  1282.  
  1283. ΓòÉΓòÉΓòÉ <hidden> Trademarks ΓòÉΓòÉΓòÉ
  1284.  
  1285. Watcom and VX-REXX are trademarks of Watcom International Corporation. 
  1286.  
  1287. IBM, OS/2, Extended Services, Extended Services for OS/2, Database 2, DB2/2, 
  1288. Multimedia Presentation Manager/2, and MMPM/2 are trademarks of the IBM 
  1289. Corporation. 
  1290.  
  1291.  
  1292. ΓòÉΓòÉΓòÉ 7. Contacting Watcom ΓòÉΓòÉΓòÉ
  1293.  
  1294.  How to Contact Watcom 
  1295.  
  1296.  In North America (and all other non-European locations) 
  1297.  
  1298.  Watcom International Corporation. 415 Phillip Street, Waterloo, Ontario, 
  1299.  CANADA, N2L 3X2 
  1300.  
  1301.   General Inquiries    Sales                             Technical Support
  1302.   tel: (519)886-3700   Upgrades, other product orders,   hot-line: (519)886-3700
  1303.   fax: (519)747-4971   and reseller inquiries/orders:    fax:      (519)747-4547
  1304.                        1-800-265-4555 (toll free in      BBS:      (519)884-2100
  1305.                        North America)                    Internet: tech@watcom.on.ca
  1306.                                                          Compuserve: type GO WATCOM
  1307.  
  1308.  Watfax 
  1309.  
  1310.  Technical support and product information is available 24 hours a day using 
  1311.  our Watfax system. To reach Watfax, call 1-519-747-2693 from your touch-tone 
  1312.  fax phone. 
  1313.  
  1314.  In Europe 
  1315.  
  1316.  Watcom Europe Limited. PO Box 64, Livingston, West Lothian, EH54 7AE, UNITED 
  1317.  KINGDOM 
  1318.  
  1319.   General Inquiries      Sales                             Technical Support
  1320.   United Kingdom         Upgrades, other product orders,   United Kingdom
  1321.   tel: 0506 460112       and reseller inquiries/orders:    tel: 0506 460112
  1322.   fax: 0506 460115                                         fax: 0506 460115
  1323.                          United Kingdom Toll Free
  1324.   Other Locations        tel: 0800 44 44 55                Other Locations
  1325.   tel: (44) 506 460112   fax: 0800 55 54 55                tel: (44) 506 460112
  1326.   fax: (44) 506 460115                                     fax: (44) 506 460115
  1327.                          Germany Toll Free
  1328.                          tel: 0130 81 88 62                BBS: (519)884-2100
  1329.                          fax: 0130 81 88 63                Internet: tech@watcom.on.ca
  1330.                                                            Compuserve: type GO WATCOM
  1331.                          France Toll Free
  1332.                          tel: 05 90 81 35
  1333.                          fax: 05 90 81 36
  1334.  
  1335.                          All Other Locations
  1336.                          tel: (44) 506 460112
  1337.                          fax: (44) 506 460115
  1338.