IBM Books

Net.Data プログラミング・ガイド


付録 A. 動的照会のサンプル

このサンプル・アプリケーションは、従業員のリストを示しています。 このアプリケーション・ユーザーは、従業員の名前を選択して詳細を表示することができます。 このアプリケーションは、SQL 言語環境を使用し、 Net.Data 変数の LOGIN および PASSWORD を使用してデータベースに対してユーザーを認証しています。



%{************************ Dynamic Query Sample *****************************
*   FileName = sqlsamp1.mac                                                 * 
*   Description:                                                            *
*     This Net.Data macro file ...                                          *
*        - creates a dynamic selection list from the database               *
*        - uses a default table to show the SQL result                      *
*                                                                           *
****************************************************************************%}
%{***************************************************************************
*   Includes -                                                              *
****************************************************************************%}
%INCLUDE "sqlsamp1.hti"
%{****************************************************************************
*  Function:  queryDB              Language Environment: SQL                *
*  Description: Queries the database and creates a selection list           *
*               from the result.  The database name and table name are      *
*               variables defined in the above include file.                *
****************************************************************************%}
%FUNCTION(DTW_SQL) queryDB() {
 SELECT * FROM $(myTable)
%MESSAGE {
    -204:  {<p><b>ERROR -204: Table $(myTable) not found. </b>
   <p>Be sure the correct include file is being used.</b>
    %} : exit
    +default: "WARNING $(RETURN_CODE)" : continue
    -default: "Unexpected ERROR $(RETURN_CODE)" : exit
%}
 
%REPORT {
<select name=emp_name>
%ROW{
<option>$(V2)
%}
</select>
%}
%}
 
%{****************************************************************************
*  Function block                                                            *
*  Description: Sends SQL query the database for the selected first name and *
*               generates a default table                                    *
******************************************************************************%}
%FUNCTION(DTW_SQL) fname(){
SELECT FIRSTNME, MIDINIT, LASTNAME, PHONENO, JOB FROM $(myTable) WHERE FIRSTNME='$(emp_name)'
%MESSAGE {
  -204: "Error -204: Table not found "
  -104: "Error -104: Syntax error"
   100: "Warning 100: No records" : continue
  +default: "Warning $(RETURN_CODE)" : continue
  -default: "Unexpected SQL error" : exit
%}
%}
 

%{***************************************************************************
*  HTML block: INPUT            Title: Dynamic Query Selection            *
*                                                                           *
*  Description: Queries the database to                                     *
*               create the selection list for the employees                 *
****************************************************************************%}
%HTML(INPUT) {
<html><head><title>Dynamic Query Selection</title></head><body><h3>$(exampleTitle)</h3>
<p>This example queries a database and dynamically uses the results to create
a selection list using the <em>%REPORT</em> block.
<hr>
<p>The following selection list is built dynamically by looking into the database
<form method="post" action="report">
@queryDB()<input type="submit" value="Select Employee">
</form>
<hr>
</body>
</html>
%}
 
%{***************************************************************************
*  HTML block:    REPORT     Title: Dynamic Query Selection               *
*  Description: Result page - Calls the SQL function to show the selected   *
*               employee information from the previous page                 *
****************************************************************************%}
%HTML(REPORT) {
<html>
<head>
<title>Dynamic Query Selection</title>
</head>
<body>
<h3>You selected employee name = $(emp_name)</h3>
<p>Here is the information for that employee:
<PRE>
------------------------ Database query results ------------------------------
@fname()
</PRE>
<hr><a href="input">Return to previous page</a>
</body>
</html>
%}
 
%{     End of Net.Data macro 1 %}
===========================================================================
%{**************************** Include File **********************************
*   FileName = sqlsamp1.hti                                                 *
*   Description:                                                            *
*     This include file provides global DEFINEs for                         *
*      sqlsamp1.mac Net.Data macro.                                              *
*                                                                           *
*                                                                           *
****************************************************************************%}
%define {
    DATABASE  ="SAMPLE"
    LOGIN     ="USERID"
    PASSWORD  ="PASSWORD"
    emp_name   ="a name"
    exampleTitle = "SQL Example"
    myTable = "EMPLOYEE"
%}
 
%{     End of include file  %}


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]