**********************************************************************
*
*  README file for CLI Samples
*  DB2 Universal Database Version 6.1
*  SDK for Windows NT, Windows 95, and Windows 98
*
* Last update : April, 1999
*
* These programming examples are for the "C" programming language, and
* can be found in the "sqllib\samples\cli" directory. Copy these files
* to your working directory prior to building the sample programs.
*
* WARNING: Some of these samples will change your database manager
*        configuration.  Execute the samples in a test instance only.
*
* Samples Run on Server:
*          Some of the samples supplied will not run on the DB2 for Windows 95
*          platform as DB2 for Windows 95 is a client-only platform and these
*          samples are stored procedures which run on servers only.
*
*          The following files are to be run on the server only:
*               - inpsrv2.c             - outsrv2.c
*               - order.c               - showda.c
*               - mrspsrv.c             - mrspsrv2.sqc
*               - udf.c                                
*
*          A number of other samples will not run on the client if the
*          above programs are not compiled and accessible on the server.
*          See the 'Stored Procedure' section below for a complete list.
*
**********************************************************************
*
* For more information on programming in CLI see the:
*  o "Building CLI Applications" section of the Application Building Guide
*  o CLI Guide and Reference.
*  o the CLI makefile
*
* For more information on the SQL language see the SQL Reference.
*
* For the latest information on programming, compiling, and running DB2 
* applications, refer to the DB2 application development website at 
*    http://www.software.ibm.com/data/db2/udb/ad
*
**********************************************************************
*
*     BUILDING THE SAMPLES
*
*  The makefile has instructions on setting up your environment to compile
*  and run the samples. Please see this file for specific details.
*  Before building the sample programs, you require:
*
*    - Your environment initialized to a valid db2 instance.
*    - The sample database (created with the db2sampl commmand).
*    - The database manager started (with the db2start command).
*    - Write permission to the the "sqllib\function" directory of
*      the database instance prior to building the stored procedures
*    - The COMPILER environment variable set properly in the
*      makefile for the compiler you want to use (either Microsoft
*      Visual C++ or IBM VisualAge C++).
*
*  Once you are  set up you can run the command 'nmake all' from your
*  working directory.
*
**********************************************************************
*
*  All samples that require a connection will prompt for:
*  server, user name, password.
*  Optionally they can be passed on the command line, but many samples
*  will prompt for other values.
*
*  All objects are created with a qualifier of the current userid.
**********************************************************************
*
*  File Descriptions:
*
**********************************************************************
README     - this file!
makefile   - makefile for all files
cliprep    - batch file to precompile and link embedded SQL

**********************************************************************
* Utility files used by most CLI samples
**********************************************************************
 samputil.c         Utility functions used by most samples
 samputil.h         Header file for samputil.c, included by most samples

**********************************************************************
* General CLI Samples
**********************************************************************
 adhoc.c            Interactive SQL with formatted output (was typical.c)
 async.c            Run a function asynchronously (based on fetch.c)
 basiccon.c         Basic connection
 browser.c          List columns, foreign keys, index columns or stats for
                    a table
 colpriv.c          List column Privileges
 columns.c          List all columns for table search string
 compnd.c           Compound SQL example
 datasour.c         List all available data sources
 descrptr.c         Example of descriptor usage
 drivrcon.c         Rewrite of basiccon.c using SQLDriverConnect
 duowcon.c          Multiple DUOW Connect type 2, syncpoint 1 (one phase
                    commit)
 embedded.c         Show equivalent DB2 CLI calls, for embedded SQL (in
                    comments)
 fetch.c            Simple example of a fetch sequence
 getattrs.c         List some common environment, connection and statement
                    options/attributes
 getcurs.c          Show use of SQLGetCursor, and positioned update
 getdata.c          Rewrite of fetch.c using SQLGetData instead of
                    SQLBindCol
 getfuncs.c         List all supported functions
 getfuncs.h         Header file for getfuncs.c
 getinfo.c          Use SQLGetInfo to get driver version and other
                    information
 getsqlca.c         Rewrite of adhoc.c to use prepare/execute and show
                    cost estimate
 lookres.c          Extract string from resume clob using locators
 mixed.sqc          CLI sample with functions written using embedded SQL
                    (Note: This file must be precompiled )
 multicon.c         Multiple connections
 native.c           Simple example of calling SQLNativeSql, and
                    SQLNumParams
 prepare.c          Rewrite of fetch.c, using prepare/execute instead of
                    execdirect
 proccols.c         List procedure parameters using SQLProcedureColumns
 procs.c            List procedures using SQLProcedures
 sfetch.c           Scrollable cursor example (based on xfetch.c)
 setcolat.c         Set column attributes (using SQLSetColAttributes)
 setcurs.c          Rewrite of getcurs.c using SQLSetCurs for positioned
                    update
 seteattr.c         Set environment attribute (SQL_ATTR_OUTPUT_NTS)
 tables.c           List all tables
 typeinfo.c         Display type information for all types for current
                    data source

**********************************************************************
* BLOB Samples
**********************************************************************
 picin.c            Loads graphic BLOBS into the emp_photo table directly
                    from a file using SQLBindParamToFile
 picin2.c           Loads graphic BLOBS into the emp_photo table using
                    SQLPutData
 showpic.c          Extracts BLOB picture to file (using
                    SQLBindColToFile), then displays the graphic.
 showpic2.c         Extracts BLOB picture to file using piecewise output,
                    then displays the graphic.

**********************************************************************
* Stored Procedure and UDF Samples
**********************************************************************
 calludf.c          Calls a UDF defined in udf.c
 udf.c              Defines a number of UDFs which are called by calludf.c
 clicall.c          Defines a CLI function which is used in the embedded
                    SQL sample mrspcli3.sqc 
 inpcli.c           Call embedded input stored procedure (samples/c/inpsrv)
 inpcli2.c          Call CLI input stored procedure inpsrv2.c
 inpsrv2.c          CLI input stored procedure (rewrite of embedded sample
                    inpsrv.sqc)
 mrspcli.c          CLI program that calls mrspsrv.c
 mrspcli2.c         CLI program that calls mrspsrv2.sqc
 mrspcli3.sqc       An embedded SQL program that calls mrspsrv2.sqc using
                    clicall.c 
 mrspsrv.c          Stored procedure that returns a multi-row result set
 mrspsrv2.sqc       An embedded SQL stored procedure that returns a
                    multi-row result set (Note: This file must be precompiled )
 outcli.c           Call embedded output stored procedure samples/c/inpsrv
 outcli2.c          Call CLI output stored procedure outsrv2.c
 outsrv2.c          CLI output stored procedure (rewrite of embedded
                    sample inpsrv.sqc)
 sendda.c           Call CLI output stored procedure (showda.c)
 showda.c           Accepts any number of arguments, displays sqlda 
                    information, and modifies the argument values.
**********************************************************************
* Samples using ORDER tables
*    Creates tables in any database using create.c
*    Uses UDF, UDT, Array In, Array Fetch, Multiple Result Sets
*
* NOTE! Make order.c first, then execute in the following order:
**********************************************************************
 create.c           Creates all tables for the order scenario
 custin.c           Inserts customers into the customer table (array
                    insert)
 prodin.c           Inserts products into the products table (array
                    insert)
 prodpart.c         Inserts parts into the prod_parts table (array insert)
 ordin.c            Inserts orders into the ord_line, ord_cust tables
                    (array insert)
 ordrep.c           Generates order report using multiple result sets,
                    and the 'price' UDF defined in order.c
 partrep.c          Generates exploding parts report (recursive SQL Query)
 dropcli.c          Removes the new tables created for the ORDER scenario

 order.c            UDF library code (declares a 'price' UDF)

**********************************************************************
* Version 2 Samples unchanged
**********************************************************************
 v2fetch.c          fetch.c using old v2 functions
 v2xfetch.c         xfetch.c using old v2 functions
 v2sutil.c          samputil.c using old v2 functions
 v2sutil.h          samputil.h using old v2 functions