New Features in HCL C API Toolkit for Notes/Domino 12.0

HCL recently released a new version of the C API Toolkit for Notes/Domino 12.0 on Flexnet.

Good news, makefiles are back and included in the samples.

There are changes and additions in the following header files: nsfnote.h, nsfdb.h, dbmisc.h,osfile.h, osenv.h, osmisc.h, nif.h, client.h, idtable.h.

Aside from other new methods, NSFQueryDBExt2 and NSFQueryDBAddArgs are some interesting candidates to play with.

NSFQueryDBExt2 runs Domino Query Language (DQL) queries. Its inputs are a database handle, the query text, length of query text, and a set of flags. The input query must be translated into LMBCS prior to execution.

NSFQueryDBAddArgs is used to build a list of values to input into a Domino Query Language (DQL) query, specifying arguments through QUEP_ARGVAL structure.

QUEP_ARGVAL structure has been added to dbmiscods.h to build the argument value.

typedef struct 
	WORD type;		   /* Standard NSF types: TYPE_TEXT, TYPE_NUMBER, TYPE_TIME. */  
	DWORD length;	   /* For all textual values. */ 
	DWORD ordinal;	   /* The nth argument in the query (so, the list needn't be in order). */ 
	BOOL bBinaryForm; /* Whether NUMBER and DATETIME values have been created in the Value area. */  
	char ArgName[16]; /* Argument names can only be 16 bytes long. */  
	char Value[256];  /* The stringized value. */ 

Some new flags for query processing have also been added to dbmisc.h.

QUEP_NO_EXEC	//Explain only mode, only plan and return the explain output.
QUEP_DEBUG	//Produce debugging output (notes.ini setting is independent of this).
QUEP_VIEWREFRESH	//Refresh all views when they are opened (default is NO_UPDATE).
QUEP_EXPLAIN	//Governs producing Explain output.
QUEP_PARSEONLY	//To check for syntax only - stops short of planning.
QUEP_DSGNCATREFRESH	//Before running the query, build/refresh the design catalog, will have no effect if you have less  than Designer privileges on the database.
QUEP_DSGNCATREBUILD	//Before running the query, rebuild the design catalog, will have no effect if you have less than  Designer privileges on the database.

More new methods can be found in Chapter 1-2 in the “HCL C API Notes/Domino 12.0 User Guide