17.00 - 17.05 - FNC_GLOP_Map_Pageの使用例 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

処理する必要がある文書のタイプに応じて、5つのXML構文ルールページの1つをマップする外部ルーチンがあるとします。 XMLルールは、"XML_Document_Syntax"セット内の読み取り専用システム マップに保持されます。 システム マップを使用する理由は、GLOPが読み取り専用であるため、1コピーだけが存在すればよく、XML文書構文ルールはシステム全体で使用され、すべての文書が同じ構文を使用する必要があるからです。

セット内では複数のシステム型GLOPを定義できることに留意してください。 そのため、固有の汎用システムGLOPデータが必要とされる場合は、それもマップできます。

#define XML_INDEX  0
XML_Rules   Current_XML_Rules;
GLOP_Map_t *MyGLOP;
int         Page_map;
int         glop_status

. . .

glop_status = FNC_Get_GLOP_Map(&MyGLOP);
if (!glop_status)
   ... process error: Not a member of any GLOP table
if ( MyGLOP->GLOP[XML_INDEX].GLOP_Ptr == NULL)
{
   ... process error: XML Syntax map does not exist
};

/* Determine page to map, based on "document_type" input parameter */
switch (*document_type)
{
   case WEB_page:
      Page_map = 1;
      break;
   case PDF_page:
      Page_map = 2;
      break;
   case Text_page:
      Page_map = 3;
      break;
   case Graphic_page:
      Page_map = 4;
      break;
   case Formula_page:
      Page_map = 5;
      break;
   Default:
      /* error: invalid documents option - generate an error */
}

if (MyGLOP->GLOP[XML_INDEX].page != Page_map)
{if (!FNC_GLOP_Map_Page(XML_INDEX, Page_map)) 
      ... error: could not map page
}

Current_XML_Rules = MyGLOP->GLOP[XML_INDEX].GLOP_ptr;

/* process the document */