***************************************************************************** * * (c) Copyright IBM Corp. 2007 All rights reserved. * * The following sample of source code ("Sample") is owned by International * Business Machines Corporation or one of its subsidiaries ("IBM") and is * copyrighted and licensed, not sold. You may use, copy, modify, and * distribute the Sample in any form without payment to IBM, for the purpose * of assisting you in the development of your applications. * * The Sample code is provided to you on an "AS IS" basis, without warranty * of any kind. IBM HEREBY EXPRESSLY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS * OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Some jurisdictions * do not allow for the exclusion or limitation of implied warranties, so the * above limitations or exclusions may not apply to you. IBM shall not be * liable for any damages you suffer as a result of using, copying, modifying * or distributing the Sample, even if IBM has been advised of the * possibility of such damages. ***************************************************************************** * * README for C#.NET Samples * * The <install path>sqllib\samples\.NET\cs directory contains this README * file where <install_path> is the location of DB2 9 on your hard drive. The * default location for <install_path> is C:\Program Files\IBM * * This README describes how to build and run C#.NET sample * code for DB2 9. The DB2 9 sample code and build files for C#.NET are * located in the following directory: * * <install_path>\sqllib\samples\.NET\cs * * Copy the sample files from this directory to a working directory prior to * building the sample programs. The sample program directories are typically * read-only on most platforms and some samples produce output files that * require write perimssions on the directory. * * WARNING: Some of these samples may change your database or database manager * configuration. Execute the samples against a test database * only, such as the DB2 SAMPLE database. * * To access, build, and run the DB2 C#.NET sample programs under the * <install path>sqllib\samples\.NET\cs directory, you must: * * 1. Install the Microsoft .NET Framework SDK and the Microsoft * .NET Framework Redistributable * * Note: 1. To compile and run the stored procedure samples, you must have * Version 1.1 or later of the .NET Framework installed. * 2. To compile and run the XML samples, you must have * Version 2.0 or later of the .NET Framework installed. * * 2. Install the Microsoft .NET Framework Service Pack 2 * ***************************************************************************** * * Prepare your DB2 sample development environment * * All samples should be run and built in a DB2 Command Window. The DB2 * Command Window is needed to execute the db2 specific commands. * Listed below is how to opening the DB2 Command Window * * o From the Start Menu click Start --> Programs --> IBM DB2 --> * <DB2 copy name> --> Command Line Tools --> Command Window * * o If DB2 Version 8 is installed on your system the following 2 methods * will open a Version 8 command window. If you do have DB2 Version 8 * please use the method above to open a Command Window. * o From the Start Menu click Start --> Run * Type 'db2cmd' in the dialog and click "OK" * * o From a Command Prompt run the following command: * db2cmd * * This Opens the CLP-enabled DB2 window, and initializes the DB2 * command line environment. Issuing this command is equivalent to * clicking the DB2 Command Window as above. * * 1) Copy the files in <install path>sqllib\samples\.NET\cs\* to a working * directory and ensure that directory has write permission. * * 2) SET DB2PATH to the location of your DB2 9 on your hard drive. * The default location is C:\Program Files\IBM * * 3) Start the Database Manager with the following command: * db2start * * 4) Create a sample database: * - For XML samples you need to use the XML sample * database which can be created using the following * command: * * db2sampl -xml * * WARNINGS * 1. XML data can only be stored in single-partition databases. * Note that using XML features prevents future use of the * Database Partitioning Feature available with DB2 Enterprise * Server Edition for Linux, UNIX, and Windows. * 2. These steps gives an overview of building and running the * samples. Please read the README in corresponding directory * for any specific considerations. * * - Non-Xml samples require the v8 sample database * which can be created using the following command: * * db2sampl -v8 * * 5) Test that you can connect to the database with the following command: * db2 connect to sample * * 6) To build Stored Procedures and User Defined Functions, ensure that you * have write permission on the <install_path>\sqllib\function directory. * * 7) cd to the directory containing the files copied in Step 1. * ***************************************************************************** * * Building DB2 Samples * * There are two ways to build DB2 samples: using a nmake utility or using * the build files that are included with the DB2 sample programs. * * o To build samples using the nmake utility see * 'BUILDING SAMPLES USING nmake UTILITY'. * o To build samples using the build files or when you do not * have a compatible nmake utility * see 'BUILDING SAMPLES USING BUILD FILES'. * ***************************************************************************** * * *** BUILDING SAMPLES USING nmake UTILITY *** * * If you have a compatible nmake utility on your system, you can use * the makefile provided. Such a nmake utility may be provided by * another language compiler. Modify the PATH variable to include the * directory containing the nmake utility. The .NET v2.0 SDK and * Visual Studios 2003 & 2005 come with nmake. If your PATH variable * is not set to use nmake with a Windows command prompt you can open * a .NET command Prompt. To do this: * * o If Visual Studio 2003/2005 is installed * From the Start Menu: click Start --> Programs * --> Microsoft Visual Studio 2003/2005 --> Visual Studio .NET Tools * --> Visual Studio 2003/2005 Command Prompt * * o If the .NET SDK is installed * From the Start Menu: click Start --> Programs * -->Microsoft .NET Framework SDK v2.0 -->SDK Command Prompt * * Once the .NET Command Prompt is open run the following command to * open a DB2 Command Prompt: * db2cmd * * Depending on your environment, the makefile might have to be * modified. For more details refer to the 'VARIABLES' section in the * makefile. * * Execute the appropriate 'nmake' command in your working directory: * * o nmake <program name> - builds the sample identified by * <program name> Do not include the file * extension for the program name. E.g. nmake * DbAuth For any dependencies refer to the * individual sample. * o nmake srv - builds only samples that can be run on the * server, including routines (stored * procedures and User Defined Functions). * o nmake rtn - builds only routines. * o nmake call_rtn - builds only client programs that call * routines. * o nmake client_run - builds only programs that run completely on * the client (not ones that call routines). * o nmake all_client - builds all client samples (all programs in * the 'call_rtn' and 'client_run' categories). * o nmake all - builds all supplied sample programs * * ***************************************************************************** * * *** BUILDING SAMPLES USING BUILD FILES *** * * As an alternative to the makefile, the build files included with the DB2 * samples can be used to build the C#.NET programs. * * Building any XML Samples: * * o bldXMLapp <prog_name> * <prog_name> - the name of the sample program * without the .cs extension. * For any additional dependencies refer to the individual sample. * * Building Standalone Samples: * * o bldapp <prog_name> * <prog_name> - the name of the sample program without the * .cs extension. * For any additional dependencies refer to the individual sample. * * Building and Executing Stored Procedures: * * o Build stored procedure server and copy the resulting .class file * to the <install path>sqllib\function directory with the * following command: * bldrtn <prog_name> * <prog_name> - Name of the sample program without the * .java extension. * * o Catalog stored procedures with the following command: * SpCat.bat * * o Build stored procedure client with the following command: * bldapp <prog_name> * <prog_name> - Name of the sample program without the * .cs extension. * * Building and Executing User Defined Functions: * * o Build UDF server and copy the resulting .class file to the * <install path>sqllib\function directory with the following * command: * bldrtn <prog_name> * <prog_name> - the name of the sample program without the * .cs extension. * * o Catalog User Defined Functions with the following command: * UDFCat.bat * * o Build UDF client with the following command: * bldapp <prog_name> * <prog_name> - Name of the sample program without the * .cs extension. * ***************************************************************************** * * Common file Descriptions * * The following are the common files for C# .NET samples. For more * information on these files, refer to the program source files. * ****************************************************************************** * * Common files * * README - this file * * makefile - makefile for all files * * XML_Util.cs * ***************************************************************************** * * Batch files * * bldXMLapp.bat - Builds a XML C# .NET sample. * * bldapp.bat - Builds a C# .NET sample. * * bldrtn.bat - Builds the stored procedures in SpServer.cs and copies the * resulting assembly SpServer.dll file to the * <install path>sqllib\function directory. * * SpCat.bat - Catalogs the stored procedures in SpServer.cs (located in * the samples\.NET\cs\ directory). * * UDFCat.bat - Catalogs the user-defined functions (UDFs) in UDFsrv.cs * (located in the samples\.NET\v directory). * * empcat.bat - Catalogs the stored procedure EMP_DETAILS (in * EmpDetails.db2). * * regCOM.bat - Registers COM+ objects for the LCTrans program. * * XmlSpCat.bat - Batch file that first calls * XmlSimpleProcDrop.db2 and then calls * XmlSimpleProcCreate.db2. This file * will be found only for windows platforms. * * XmlSpCatXQuery.bat - Batch file that first calls * XmlXQueryProcDrop.db2 and then calls * XmlXQueryProcCreate.db2. This file * will be found only for windows platforms. * ***************************************************************************** * * C# .NET Samples Design * * The C# .NET sample programs form an object-based design reflecting the * component nature of DB2. Related samples demonstrate a specific level of * database programming. Each level is identified by the first two characters * of the sample name. Here are the database levels represented by the * samples: * * Identifier DB2 Level * * Db Database Level * Tb Table Level * Dt Data Type Level * Sp Stored Procedure Level * UDF User-defined function Level * Xml XML Database Samples * ***************************************************************************** * * C# .NET Sample Descriptions * * The following are the C# .NET sample files included with DB2. For more * information on the sample programs, refer to the program source files. * ***************************************************************************** * * Database Level * * DbAuth.cs - How to grant/display/revoke authorities at database level. * * DbDatAdp.cs - How to use a DB2DataAdapter. * * DbDatMap.cs - How to set up DataTable and DataColumn mappings. * * DbDsetCn.cs - How to add exisiting contraints to a DataSet. * * DbEvent.cs - How to handle DB2DataAdapter events. * * DbUse.cs - How to work with database objects. * * DbValue.cs - How to obtain a single value from a database. * ***************************************************************************** * * Table Level * * TbConstr.cs - How to work with table constraints. * * TbInfo.cs - How to get and set information at a table level. * * TbPriv.cs - How to grant/display/revoke privileges at a table level. * * TbSel.cs - How to select from each of: insert, update, delete. * * TbTrig.cs - How to use a trigger on a table. * * TbUse.cs - How to manipulate table data and connect to/disconnect * from a database. * ***************************************************************************** * * Data Type Level * * DtLob.cs - How to use the LOB data type. * ***************************************************************************** * * Stored Procedure Level * * SpCat - A batch file that runs SpDrop.db2 and SpCreate.db2 scripts * to drop and recreate the C# stored procedures. * * SpDrop.db2 - DB2 command line processor (CLP) script that drops the * sample C# stored procedures from the DB2 database. * * SpCreate.db2 - DB2 CLP script that executes the CREATE PROCEDURE * statements for the C# stored procedures implemented in * SpServer.cs. * * SpServer.cs - C# stored procedure implementations called by client * application SpClient.cs * * EmpDetails.db2 - DB2 CLP script that creates an SQL stored procedure * named EMP_DETAILS * * SpReturn.cs - Client application that calls the SQL stored procedure * EMP_DETAILS, in file EmpDetails.db2, and obtains its * return value. * * SpClient.cs - Client application that calls the variety of different * C# stored procedures implemented in SpServer.cs * ***************************************************************************** * * User-defined Function (UDF) Level * * UDFCat - A batch file that runs UDFDrop.db2 and UDFCreate.db2 * scripts to drop and recreate the C# UDFs. * * UDFDrop.db2 - DB2 command line processor (CLP) script that drops the * sample C# UDFs from the DB2 database. * * UDFCreate.db2 - DB2 CLP script that executes the CREATE FUNCTION * statements for the C# UDFs implemented in UDFsrv.cs. * * UDFsrv.cs - C# UDF implementations called by client application * UDFcli.cs * * UDFcli.cs - Client application that calls the variety of different * C# UDFs implemented in SpServer.cs * ***************************************************************************** * * Loosely Coupled Transactions * * LCTrans.cs - Demonstrates loosely coupled transactions * * RootCOM.cs - This file is used to create a library assembly * RootCOM.dll. LCTrans.cs refers to the classes and * methods that are defined in this file. * * SubCOM.cs - This file is used to create a library assembly * SubCOM.dll. LCTrans.cs refers to the classes and * methods that are defined in this file. * ***************************************************************************** * * XML Database Samples * * XmlIndex.cs - Create an index and use it in an XQuery * * XmlUniqueIndexes.cs - Create and index with UNIQUE and VARCHAR * length constraints * NOTE : This sample demonstrate the how to enforce the * constraints on an XML value. There are some statement * in the samples which are expected to fail because of * constraint violation so The sql error SQL803N, * SQL20305N and SQL20306N are expected. * * XmlInsert.cs - Insert an XML document into a column of * XML data type * PREREQUISITE : copy the file cust1023.xml to the * working directory before running the sample. The * file can be found in the * <install_path>\sqllib/samples/xml/data directory. * * XmlUpAndDel.cs - Update and delete XML documents in the * tables * PREREQUISITE : copy the files cust1023.xml, * cust1022.xml and cust1023.xml to the working directory * before running the sample. The file can be found in * the <install_path>\sqllib/samples/xml/data directory. * * XmlRead.cs - Read XML data stored in tables * * XmlRelToXmlDOC.cs - Create and XML document directly from data * stored in relational tables using SQL/XML * publishing sunctions * PREREQUISITE: This sample uses a stored procedure. * Stored procedure should be registered before running * the sample. Follow the step given in the header of * the sample for more details. Run the cleanup.db2 * and setupscript.db2 scripts before running this * simple.Run the cleanupscript.db2 script to cleanup * the database objects after running the sample. * These scripts can be found in * <install_path>\sqllib/samples/xml/data directory. * * XmltoTable.cs - Insert the data from an XML document into * relational tables using SQL/XML * PREREQUISITE: copy purchaseorder.xml XML document * from <install_path>\sqllib/samples/xml/data * directory to the working directory. * * XmlRelToXmlType.cs - Create an XML document from relational and * XML data using SQL/XML publishing functions * PREREQUISITE: Run the script setupscript.db2 before * running this simple. Run the cleanupscript.db2 script * to cleanup the database objects after running the * sample. These scripts can be found in * <install_path>\sqllib/samples/xml/data directory. * * XmlDecomposition.cs - Decompose data stored in an XML file and * insert the data into tables * PREREQUISITE:run the script setupfordecomposition.db2 * before running the sample. Run the script * cleanupfordecomposition.db2 after running the sample * to cleanup the object created for the samples. These * scripts can be found in xml/data directory. This * sample require bookdetail.xml, bookdetail.xsd files * at run time. Copy these files to your working * directory before running the sample. These file can * be found in <install_path>\sqllib/samples/xml/data * directory. * * XmlSchemas.cs - Register the XML schema to the database * and use the registered schema to validate * and insert and XML document * PREREQUISITE: copy product.xsd, order.xsd, * customer.xsd, header.xsd Schema files, order.xml XML * document from <install_path>\sqllib/samples/xml/data * directory to working directory. * * XmlFlwor.cs - Use the XQuery FLWOR expression * * XmlSQLXQuery.cs - Use SQL/XML queries * * XmlXPath.cs - Run simple XPath queries * * XmlXQuery.cs - Executing nested XQuery FLWOR expression * ******************************************************************************* * * XML Stored Procedure Samples * * XmlSimpleProcClient.cs - Client application that calls the stored * procedure. * PREREQUISITE: build the server * "XmlSimpleProc.cs"and register the procedure * using XmlSpCat. * * XmlSimple_Proc.cs - Stored procedure functions built and run on the * server. * * XmlSimpleProcCreate.db2 - CLP script to issue CREATE PROCEDURE statement. * * XmlSimpleProcDrop.db2 - CLP script to drop stored procedure from the * catalog. * * XmlXQueryProcClient.cs - Client application that calls the stored * procedure. * PREREQUISITE: build the server * "XmlXQueryProc.cs"and register the procedure * using XmlSpCatXQuery. * * XmlXQueryProc.cs - Stored procedure functions built and run on the * server. * * XmlXQueryspcat.bat - Batch file that first calls * XmlXQueryProcDrop.db2 and then calls * XmlXQueryProcCreate.db2. This file * will be found only for windows platforms. * * XmlXQueryProcCreate.db2 - CLP script to issue CREATE PROCEDURE statement. * * XmlXQueryProcDrop.db2 - CLP script to drop stored procedure from the * catalog. * *******************************************************************************