管理与程序设计指南

不使用宏对 Net.Data 进行调用(直接请求)

本节将告诉您如何使用直接请求来调用 Net.Data。在使用直接请求时, 不要在 URL 中指定宏的名称。相反,可以使用 Net.Data 定义的语法来指定 Net.Data 语言环境、 要执行的 SQL 语句或程序、以及 URL 中所需的任何附加参数值。参见DTW_DIRECT_REQUEST:启用直接请求变量,以学习如何启用和禁用直接请求。

SQL 语句或程序以及其他指定的参数都被直接传递到指定的语言环境进行处理。直接请求可以改进性能,因为 Net.Data 不需要读取和处理宏。SQL、ODBC、Oracle、 Java、 System、Perl 和 REXX 这些 Net.Data 提供的语言环境支持直接请求,您可以使用 URL、HTML 表或链来调用 Net.Data。

直接请求通过传递 URL 或表数据的查询字符串中的参数来调用 Net.Data。以下示例说明了可以指定直接请求的上下文。

<a href="http://server/cgi-bin/db2www/?direct_request">any text</a>

其中 direct_request 代表 直接请求的语法。例如,以下 HTML 链中包含直接请求:

<a href="http://server/cgi-bin/db2www/?LANGENV=DTW_PERL&FUNC=my_perl(hi)">
  any text</a>

直接请求的语法

使用直接请求调用 Net.Data 的语法中可以包含一个对数据库语言环境或非数据库语言环境的调用。

语法

>>-?--+--------------------------------------------------------------+-- ----+-| Database language environment call |-----+->
      |                .-HTML--.                                     |       '-| Non-database language environment call |-'
      '-DTW_DOCUMENT=--+-XML---+---&--+---------------------------+--'
                                      '-STYLESHEET=--filename--&--'
 
>--------------------------------------------------------------><
 
Database language environment call
 
    .-------------------------------.
    V                               |
|------+-------------------------+--+--LANGENV =---------------->
       '-| Form data entry |--&--'
 
                          .-------------------------------.
                          V                               |
>-------dblangenv----&-------+-------------------------+--+----->
                             '-| Form data entry |--&--'
 
>-----+-SQL=--sql_stmt-------------------------------------+---->
      '-FUNC=--stored_proc_name--(--| Parameter list |--)--'
 
      .-------------------------------.
      V                               |
>--------+-------------------------+--+-------------------------|
         '-&--| Form data entry |--'
 
Form data entry
 
|---DATABASE----+-----------------------+--=---VALUE------------|
                +-DB_CASE---------------+
                +-DTW_HTML_TABLE--------+
                +-LOGIN-----------------+
                +-PASSWORD--------------+
                +-RPT_MAX_ROWS----------+
                +-SHOWSQL---------------+
                +-START_ROW_NUM---------+
                '-user_defined_variable-'
 
Parameter list
 
    .-,-------------------------------------------------------------.
    V                                                               |
|-----+-IN--parm_type--+-parm_value--------+---------------------+--+->
      |                '-"--parm_value--"--'                     |
      +-OUT--parm_type--+-parm_name--+---------------------------+
      |                 '-parm_name--'                           |
      '-INOUT--parm_type--+-parm_name--+---+-parm_value--------+-'
                          '-parm_name--'   '-"--parm_value--"--'
 
>---------------------------------------------------------------|
 
Non-database language environment call
 
|---LANGENV=------lang_env----&---FUNC--=--program_name--------->
 
        .-,-----------------------.
        V                         |
>----(-----+-------------------+--+---)-------------------------|
           '-"--parm_value--"--'
 

参数

DTW_DOCUMENT
指定 Net.Data 应作为输出返回的文档类型。 允许的值是 XML 或 HTML。此参数是可选的,若未指定,则假设为 HTML。

DTW_STYLESHEET
指定显示 XML 时,Net.Data 应使用的样式表。 此参数是可选的,且只当 DTW_DOCUMENT=XML 时才有意义。

样式表
指定服务器上样式表的文件名。

数据库语言环境调用
向 Net.Data 指定一个调用数据库语言环境的直接请求。

表数据项
允许您指定 SQL 变量设置或请求简单的 HTML 格式的参数。参见 Net.Data 参考以了解这些变量的更多信息。

DATABASE
指定 Net.Data 应将 SQL 请求传递到哪个数据库。此参数是必需的。

DB_CASE
指定 SQL 语句的大小写情况(大写或小写)。

DTW_HTML_TABLE
指定 Net.Data 应返回一个 HTML 表格还是应返回一个预格式化的文本表格。

DTW_DOCUMENT
指定 Net.Data 应将结果显示成 XML 还是 HTML。允许的值 是 XML 或 HTML。未指定此关键字时,HTML 是缺省值。

LOGIN
指定数据库用户 ID。

PASSWORD
指定数据库口令。

RPT_MAX_ROWS
指定一个函数应当在它的报告中返回的最大行数。

SHOWSQL
指定 Net.Data 是应当隐藏还是显示要执行的 SQL 语句。

START_ROW_NUM
指定一个函数应该在哪一行开始它的报告。

user_defined_variable
传递给 Net.Data 的变量,并提供必需的信息或实现 Net.Data 的行为。用户定义的变量 是您为应用程序定义的。

VALUE
指定 Net.Data 变量的值。

LANGENV
为 SQL 语句或存储过程调用指定目标语言环境。如果该语言环境 是数据库语言环境,则必须指定数据库名称。

dblangenv
数据库语言环境的名称:
  • DTW_SQL
  • DTW_ODBC
  • DTW_ORA

SQL
表示直接请求指定了在线 SQL 语句的执行。

sql_stmt
指定一个字符串,其中包含任何可以使用动态 SQL 来执行的有效的 SQL 语句。

FUNC
表示直接请求指定了一个存储过程的执行。

stored_proc_name
指定任何有效的 DB2 存储过程名。

parm_type
为 DB2 存储过程指定任何有效的参数类型。

parm_name
指定任何有效的参数名。

parm_value
为 DB2 存储过程指定任何有效的参数值。

IN
指定 Net.Data 应当使用该参数将输入数据传递到存储过程。

INOUT
指定 Net.Data 应当使用该参数将输入数据传递到存储过程并返回来自语言环境的输出数据。

OUT
指定语言环境应当使用该参数返回来自存储过程的输出数据。

非数据库语言环境调用
向 Net.Data 指定一个调用非数据库语言环境的直接请求。

LANGENV
为函数的执行指定目标语言环境。

lang_env
指定非数据库语言环境的名称:
  • DTW_PERL
  • DTW_REXX
  • DTW_SYSTEM

FUNC
表示直接请求指定了一个程序的执行。

program_name
指定程序,其中包含要执行的函数。

parm_value
为函数指定任何有效的参数值。

直接请求示例

以下示例显示了可以在使用直接请求方法时调用 Net.Data 的不同方式。

HTML 链

以下示例使用直接请求通过链来调用 Net.Data。

例 1:一个调用 Perl 语言环境并调用 Net.Data 初始化文件中 EXEC 路径 语句内的 Perl 脚本的链。

<a href="http://server/cgi-bin/db2www/?LANGENV=DTW_PERL&FUNC=my_perl(hi)">
  any text</a>

例 2:一个调用 Perl 语言环境的链,同前例,但它传递的字符串中 具有双引号和空格字符的 URL 编码值。

<a href="http://server/cgi-bin/db2www/?LANGENV=DTW_PERL&FUNC=my_perl
     (%22Hello+World%22)">any text</a>
提示:您必须在 URL 内对某些字符编码,例如空格和双引号。在此例中, 参数值中的双引号字符和空格必须分别编码成 %22 和 + 字符。可以使用 内部函数 DTW_URLESCSEQ 来对 URL 中必须编码的文本进行编码。有关 DTW_URLESCSEQ 函数的更多信息,参见 Net.Data 参考中的说明。

HTML 表

以下示例使用直接请求通过表来调用 Net.Data。

例 1:一个将执行 SQL 查询(使用 SQL 语言环境)的 HTML 表, 它还连接到 CELDIAL 数据库并查询一个表格

<form method="post"
 action="http://server/cgi-bin/db2www/">
<input type=hidden name="langenv" value="dtw_sql" />
<input type=hidden name="database" value="celdial" />
 <input type=hidden name="sql"
       value="select * from table1 where col1=$(inputname)" />
Enter Customer name:
<input type=text name="inputname" value="john" />
<input type=submit />
</form>

本示例中包含 SQL 语句中一个可变的替换,可使 WHERE 子句变为动态。

URL

以下示例使用直接请求通过 URL 来调用 Net.Data。

例 1:一个将执行 SQL 查询(使用 SQL 语言环境)的 URL

http://server/cgi-bin/db2www/?LANGENV=DTW_SQL&DATABASE=CELDIAL
 &SQL=select+*+from+customer

例 2:一个调用 Perl 语言环境并调用不在 Net.Data 初始化文件的 EXEC 路径 语句内的可执行文件的 URL。

http://server/cgi-bin/db2www/?LANGENV=DTW_PERL&FUNC=/u/MYDIR/macros/myexec.pl

例 3:一个调用 System 语言环境并调用外部 Perl 脚本的 URL

http://server/cgi-bin/db2www/?LANGENV=DTW_SYSTEM&
   FUNC=perl+/u/MYDIR/macros/myexec.pl

例 4:一个调用 REXX 语言环境、调用 REXX 程序并将参数传递到程序的 URL

http://server/cgi-bin/db2www/?LANGENV=DTW_REXX&FUNC=myexec.cmd(parm1,parm2)

例 5:一个调用存储过程并将参数传递到 SQL 语言环境的 URL

http://server/cgi-bin/db2www/?LANGENV=DTW_SQL&FUNC=MY_STORED_PROC
   (IN+CHAR(30)+Salaries)&DATABASE=CELDIAL


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]