この関数は、システム型のGLOPとしてGLOPセットに追加されるGLOPデータを生成します。
/********** File: compinform.c **********/
#define SQL_TEXT Latin_Text
#include <sqltypes_td.h>
#include <string.h>
#include <stdlib.h>
#define IsNull -1
#define IsNotNull 0
#define loopsize 20
/**************************************************************/
/* Generate data for different departments in a retail store. */
/**************************************************************/
struct Company
{
INTEGER deptid;
char deptname[30];
};
struct Company_INFO
{
struct Company Dept[loopsize];
}*COMPANY_DETAILS;
void compinform( LOB_RESULT_LOCATOR *cmp_info,
INTEGER *cmp_infoISNULL,
char sqlstate[6],
SQL_TEXT extname[129],
SQL_TEXT specific_name[129],
SQL_TEXT error_message[257] )
{
FNC_LobLength_t actlen;
int i;
const char truncate1a[6] = "22001";
char *Dept_Name[20] =
{"Automotive", "Hardware", "Bed", "Bath", "Toys", "Food",
"Electronics", "Games", "Photo", "Kitchen", "Seasonal", "Books",
"Furniture", "Pharmacy", "Men", "Women", "Baby", "Kids",
"Shoes", "Nursery"};
// Allocate memory to store the contents.
COMPANY_DETAILS =
(struct Company_INFO *)FNC_malloc(sizeof(struct Company_INFO));
// Store data in a structure format.
for (i=0; i<loopsize; i++)
{
COMPANY_DETAILS->Dept[i].deptid=i+1;
strcpy(COMPANY_DETAILS->Dept[i].deptname,(char*)Dept_Name[i]);
}
// Add data to BLOB.
if (FNC_LobAppend(*cmp_info,COMPANY_DETAILS,
sizeof(*COMPANY_DETAILS),& actlen) !=0)
{
strcpy(sqlstate, truncate1a);
FNC_free(COMPANY_DETAILS);
return;
}
// Free the memory that was allocated to the structure CompanyName.
FNC_free(COMPANY_DETAILS);
}