PolyFromShape はポリゴン型の形状と地理情報参照システム ID を引き数とし、ポリゴンを戻します。
構文
db2gse.PolyFromShape (ShapePolygon Blob(1M), SRID db2gse.coordref)
戻りタイプ
db2gse.ST_Polygon
例
以下のプログラム断片では、SENSITIVE_AREAS 表にデータを入れます。疑問符 (?) は、実行時に検索される ID、名前、サイズ、タイプおよびゾーン値に対するパラメーター・マーカーを表しています。
SENSITIVE_AREAS 表には、汚染の恐れがある公共施設について記述する複数の列と、それらの公共施設のポリゴン図形を格納する zone 列が含まれています。
CREATE TABLE SENSITIVE_AREAS (id integer, name varchar(128), size float, type varchar(10), zone db2gse.ST_Polygon); /* Create the SQL insert statement to populate the id, name, size, type and zone. The question marks are parameter markers that indicate the id, name, size, type and zone values that will be retrieved at runtime. */ strcpy (shp_sql,"insert into SENSITIVE_AREAS (id, name, size, type, zone) values (?,?,?,?, db2gse.PolyFromShape (cast(? as blob(1m)), db2gse.coordref()..srid(0)))"); /* Allocate memory for the SQL statement handle and associate the statement handle with the connection handle. */ rc = SQLAllocStmt (handle, &hstmt); /* Prepare the SQL statement for execution. */ rc = SQLPrepare (hstmt, (unsigned char *)shp_sql, SQL_NTS); /* Bind the id integer value to the first parameter. */ pcbvalue1 = 0; rc = SQLBindParameter (hstmt, 1, SQL_PARAM_INPUT, SQL_C_INTEGER, SQL_INTEGER, 0, 0, &site_id, 0, &pcbvalue1); /* Bind the name varchar value to the second parameter. */ pcbvalue2 = name_len; rc = SQLBindParameter (hstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 0, 0, name, 0, &pcbvalue2); /* Bind the size float to the third parameter. */ pcbvalue3 = 0; rc = SQLBindParameter (hstmt, 3, SQL_PARAM_INPUT, SQL_C_FLOAT, SQL_REAL, 0, 0, &size, 0, &pcbvalue3); /* Bind the type varchar to the fourth parameter. */ pcbvalue4 = type_len; rc = SQLBindParameter (hstmt, 4, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, type_len, 0, type, type_len, &pcbvalue4); /* Bind the zone polygon to the fifth parameter. */ pcbvalue5 = zone_len; rc = SQLBindParameter (hstmt, 5, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_BLOB, zone_len, 0, zone_shp, zone_len, &pcbvalue5); /* Execute the insert statement. */ rc = SQLExecute (hstmt);