******************************************************************************

* (c) 版权所有 IBM Corp. 2007 保留所有权利。

* 

* 以下源代码示例(以下简称 "示例")归 International 公司所有 

* 商业机器公司或其子公司之一(" IBM "),并且是 

* 版权和许可,不得出售。 您可以使用、复制、修改和 

* 在不向 IBM 支付费用的情况下,以任何形式分发样品,目的是 

* 协助您开发应用程序。

* 

* 本示例代码以 "原样 "提供给您,不作以下保证 

* 任何一种。 IBM 在此,本公司明确声明不作任何保证,无论是明示的还是 

* 默示保证,包括但不限于以下默示保证 

* 适销性和特定用途的适用性。 一些辖区确实 

* 不允许排除或限制默示保证,因此上述 

* 限制或排除条款可能不适用于您。 IBM SHALL NOT BE LIABLE FOR 

* 您因使用、复制、修改或执行以下行为而遭受的任何损失 

* 分发样品,即使 IBM 已被告知可能出现以下情况 

* 此类损害赔偿。

*

******************************************************************************

*

* C++ 示例的 README SunOS 

*

* <install_path>/sqllib/samples/cpp 目录包含以下 README 文件

* 其中 <install_path> 是硬盘上 DB2 9.7 的位置。

* <install_path> 的默认位置是 $HOME。

* 本 README 介绍如何构建和运行用于 DB2 9.7 的 cpp 示例代码。

*

* DB2 9.7 C++ 示例代码位于以下目录中:

* <install_path>/sqllib/samples/cpp

*

* 建议您将该目录中的文件复制到您的

* 工作目录。 示样

* 在大多数平台上,程序目录通常是只读的

* 样本会生成临时文件。

*

* 警告:其中一些示例可能会更改您的数据库或数据库管理器

* 配置。 仅针对 "测试 "数据库执行样本、

* 如 DB2 SAMPLE 数据库。

*

* 注意:这些示例在使用 db2sampl 创建的示例数据库上进行了测试。

*

******************************************************************************

*

* 准备 DB2 示例开发环境

*

* 1) 将 sqllib/samples/cpp 中的文件复制到工作目录,然后

* 确保目录有写入权限。

*

* 2) 使用以下命令启动数据库管理器:

*     db2start

*

* 3) 使用以下命令创建示例数据库:

*     db2sampl

*

* 4) 使用以下命令连接数据库:

* db2 连接至样本

*

* 5) 要创建存储过程和用户自定义函数,请确保

* 在 <install_path>/sqllib/function 上有写入权限

* 目录。

*

* 6) cd 到包含步骤 1 中复制的文件的目录。

*

******************************************************************************

*

* 建筑 DB2 样本

*

* 构建 DB2 样本有两种方法:使用 make 工具或使用

* DB2 示例程序中包含的构建文件。

*       o 使用 make 工具制作样本,请参阅 "使用 make 工具制作样本"

* 使 UTILITY'。

*       o 要使用构建文件构建样本,或当您没有

* 兼容的 make 工具,请参阅 "使用构建文件构建样本"。

*

******************************************************************************

*

* *** 使用 nmake 工具构建样本 ***

*

* 如果系统中有兼容的 make 工具,可以使用

* 提供的 makefile。 另一种语言可以提供这种使 用功能

* 编者: 修改 PATH 变量,使其包含包含

* 制作实用工具。

*

* 根据您的环境,可能需要修改 makefile。

* 详情请参阅 makefile 中的 "变量 "部分。

*

* 在工作目录中执行相应的 "make "命令:

* o make <程序名称> - 生成 <程序名称> 所标识的样本

* 名称>。文件扩展名

* 程序名称。 E.g. 生产 DbAuth

* 有关任何依赖关系,请参阅各

* 样品

*       o make srv - 仅构建可在

* 服务器,包括例程(存储过程

* 和用户自定义函数)。

*       o make rtn - 仅构建例程。

*       o make call_rtn - 只构建调用

* 例行公事。

*       o make client_run - 只编译完全运行于

* 而不是调用例程)。

*       o make all_client - 生成所有客户机样本(所有程序都在

* call_rtn "和 "client_run "类别)。

*       o make all - 生成所有提供的示例程序

*

* 注意:在运行 "make all "之前,先创建一个名为 SAMPLE2 的数据库

* 有些样本需要两个数据库。 创建第二个数据库

* 使用以下命令:

* db2 connect reset -- 断开与样本数据库的连接。

*       db2 create database -- 创建第二个数据库。 sample2

*       db2 connect to sample -- 重新连接样本数据库。

*

******************************************************************************

*

* *** 使用构建文件构建样本 ***

*

* 作为 makefile 的替代方案,与 DB2

* 示例可用于构建 CPP 示例程序。

*

* 构建独立样本

* o bldapp <program_name>

* <prog_name> - 样本程序的名称,不包括

* 任何扩展。

*         有关其他依赖关系,请参阅各个样本。

*

* 构建和执行存储过程

* o 生成存储过程服务器,并将生成的二进制文件复制到

* 使用以下命令运行 sqllib/function 目录:

* bldrtn <程序名

* <prog_name> - 样本程序的名称,不带任何

* 延长。

*       o 使用以下命令编目存储过程:

* spcat

* o 使用以下命令创建存储过程客户端:

* bldapp <程序名

* <prog_name> - 样本程序的名称,不带任何

* 延长。

*

* 构建和执行用户自定义函数

* o 生成 UDF 服务器,并将生成的二进制文件复制到

* sqllib/function 目录,执行以下命令:

* bldrtn <程序名

* <prog_name> - 样本程序的名称,不带任何

* 延长。

*       o 使用以下命令编目用户自定义功能:

* udfcat

* o 使用以下命令创建 UDF 客户端:

* bldapp <程序名

* <prog_name> - 样本程序的名称,不带任何

* 延长。

*

******************************************************************************

*

* 常见文件说明

* 

* 以下是 C++ 示例的常用文件。 更多信息

* 有关这些文件的信息,请参阅程序源文件。

*

******************************************************************************

*

* 常用文件

*

* README - 此文件!

* makefile - 用于制作大多数示例文件的 Makefile

*

******************************************************************************

*

* 外壳脚本

*

* bldapp - 生成应用程序

* bldmc - 生成多连接应用程序

* bldmt - 生成多线程程序

* bldrtn - 建立例程(存储过程和 UDF)

* embprep - 预编译和绑定嵌入式 SQL 程序

*

******************************************************************************

*

* 样品设计

*

* 大多数 C++ 示例程序的组织都反映了基于对象的

* 设计不同层次的 DB2。 样本的水平用

* 样本名称开头的两个字符标识符。 这些级别

* 显示了一个分层结构:一个应用程序可以访问不同的

* 一个实例可以有不同的数据库等。 以下是 DB2

* 的水平:

*

* 标识符 DB2 级别

*

* 客户级别。

*     在实例级别。

*     db 数据库级别。

*     ts 表空间级别。

*     tb 表层。

*     dt 数据类型级别。

*

******************************************************************************

*

* 其他样本

*

* 除了按 DB2 级别设计组织的样本外,其他样本显示

* 特定类型的应用方法:

*

* 标识符应用方法

*

* fn SQL 函数。

*     sp 存储过程。

*     ud 用户自定义函数。

*

******************************************************************************

*

* C++ 示例说明

*

* 以下是 DB2 随附的 C++ 示例文件。 更多信息

* 有关示例程序的信息,请参阅程序源代码

* 文件

*

******************************************************************************

*

* 客户端级别(处理 DB2 客户端级别的程序文件 )

*

* cli_info.C - 如何获取和设置客户级别信息。

* clisnap.C - 如何获取客户级别的快照。

* clisnapnew.C - 如何获取客户端级别的快照(使用 API)。

*

******************************************************************************

*

* 实例级(处理 DB2 实例级的程序文件 )

*

* inattach.C - 如何附加到实例或从实例中脱离。

* inauth.sqC - 如何在实例级别显示权限。

* ininfo.C - 如何获取和设置实例级信息。

* insnap.C - 如何获取实例级别的快照。

* insnapnew.C - 如何获取实例级别的快照(使用 API)。

* instart.C - 如何停止和启动当前本地实例。

*

******************************************************************************

*

* 数据库级(在 DB2 中处理数据库对象的程序文件 )

*

* dbauth.sqC - 如何在数据库级别授予/显示/撤销权限。

* dbcfg.sqC - 如何配置数据库和数据库管理器参数。

* dbconn.sqC - 如何连接和断开数据库。

* dbcreate.C - 如何创建和删除数据库。

* dbhistfile.sqC - 如何读取和更新数据库恢复文件条目。

* dbinfo.C - 如何获取和设置数据库级别的信息。

* dbinspec.sqC - 如何使用

* DB2 应用程序接口 db2Inspect

* dblogconn.sqC - 如何使用

* 压缩和未压缩的数据库连接

* 表格

* dblognoconn.sqC - 如何异步读取数据库日志文件而无需

* 数据库连接

* dbmcon.sqC - 如何连接和断开多个数据库。

* dbmcon1.sqC - 多数据库程序 dbmcon 中使用的函数。

* dbmcon1.h - dbmcon1.sqC 的头文件。

* dbmcon2.sqC - 多数据库程序 dbmcon 中使用的函数。

* dbmcon2.h - dbmcon2.sqC 的头文件。

* dbupgrade.C - 如何升级数据库。

* dbpkg.sqC - 如何使用软件包。

* dbrestore.sqC - 如何从备份恢复数据库

* dbrollfwd.sqC - 如何在还原数据库后执行前滚操作

* dbsnap.C - 如何获取数据库级别的快照。

* dbsnapnew.C - 如何获取数据库级别的快照(使用 API)。

* dbthrds.sqC - 如何使用线程。

* dbuse.sqC - 如何使用数据库对象。

*

******************************************************************************

*

* 表空间级(在 DB2 中处理表空间对象的程序文件 )

*

* tscreate.sqC - 如何创建/删除缓冲池和表空间。

*

******************************************************************************

*

* 表级(在 DB2 中处理表对象的程序文件 )

*

* tbast.sqC - 如何使用暂存表更新延迟 AST

* tbcompress.sqC - 如何创建带空值和默认值的表格

* 压缩选项

* tbconstr.sqC - 如何使用表格约束

* tbselcreate.db2 - 创建表格的 CLP 脚本

* tbseldrop.db2 - 删除表格的 CLP 脚本

* tbselinit - 首先调用 tbseldrop.db2 然后调用

*                    tbselcreate.db2.

* tbcreate.sqC - 如何创建、更改和删除表。

* tbinfo.sqC - 如何获取和设置表格级别的信息。

* tbintrig.sqC - 如何使用代替触发器。

* tbmerge.sqC - 如何使用 MERGE 语句

* tbmod.sqC - 如何修改表格中的信息。

* tbmove.sqC - 如何移动桌子

* tbonlineinx - 如何在表上创建和重新组织索引

* tbpriv.sqC - 如何在表一级授予/显示/撤销权限。

* tbread.sqC - 如何读取表格中的信息

* tbreorg.sqC - 如何重组表格。

* tbrunstats - 如何对表格执行运行统计

* tbsavept.sqC - 如何使用外部保存点

* tbsel.sqC - 如何从插入、更新、删除中进行选择。

* tbtemp.sqC - 如何使用已声明的临时表

* tbtrig.sqC - 如何在表格中使用触发器。

* tbumqt.sqC - 如何使用用户生成的查询表(汇总表)

* tbloadcursor.sqC - 如何使用 CURSOR 将数据加载到表格中?

* 或 REMOTEFETCH 介质类型。

*

******************************************************************************

*

* 数据类型级(处理数据类型的程序)

*

* dtlob.sqC - 如何读写 LOB 数据。

* dtstruct.sqC - 如何创建、使用和删除结构化类型的层次结构

* 和打字表格。

* dtudt.sqC - 如何创建/使用/删除用户定义的不同类型。

*

******************************************************************************

*

* 函数级(演示 SQL 函数的程序文件)

*

* fnuse.sqC - 如何使用 SQL 函数

*

******************************************************************************

*

* 存储过程级别(演示存储过程的程序文件)

*

* spcreate.db2 - 发布 CREATE PROCEDURE 语句的 CLP 脚本

* spdrop.db2 - 从目录中删除存储过程的 CLP 脚本

* spcat - CLP 脚本,首先调用 spdrop.db2 ,然后调用

*                 spcreate.db2.

* spserver.exp - 导出文件。

* spclient.sqC - 客户端应用程序调用

*                 spserver.sqc.

* spserver.sqC - 存储过程函数在服务器上构建和运行。

*

******************************************************************************

*

* UDF 级(演示用户定义函数的程序文件)

*

* udfcli.sqC - 调用用户定义函数的客户端应用程序

* 于 udfsrv.C

* udfemcli.sqC - 调用各种类型的嵌入式 SQL 用户定义

* 中的功能 udfemsrv.sqC

* udfemsrv.sqC - udfemcli.sqC 调用的嵌入式 SQL 用户定义函数。

* udfemsrv.exp - udfemsrv 的导出文件

* udfsrv.C - 由用户定义的函数 ScalarUDF 调用 udfcli.sqC 样本

* udfsrv.exp - udfsrv 的导出文件

*

******************************************************************************

*

* 通用实用功能文件

*

* utilapi.C - 用于非嵌入式 SQL DB2 API 的错误检查实用程序文件

* 程序

* utilapi.h - 的头文件 utilapi.C

* utilemb.sqC - 用于嵌入式 SQL 程序的错误检查实用程序文件。

* utilemb.h - 的头文件 utilemb.sqC

* utilsnap.C - 快照监控程序 clisnap 的实用程序文件、

* clisnapnew, dbsnap, dbsnapnew, insnap, insnapnew

*

******************************************************************************

*

* 事件监测器样本

*

* evm.sqC - 演示文件、管道和表格事件监控器

*

******************************************************************************