VCPDbInsertRec
int VCPDbInsertRec(UInt *idx, char *dat);
# define VCPDbInsertRec(a, b) VCPDbInsertRecx(a, b, __FILE__, __LINE__)
//ENDH
/********************************************************************
	Inserts a new record in the database

	returns 0  if successful
	otherwise return error number

	the index of the inserted record is returned in the idx param

*********************************************************************/
int VCPDbInsertRecx(UInt *idx, char *dat, char *fname, long lnr)
{
	VoidHand hnd;
	int err;
	VoidPtr lptr;

	if (VCPINTOpenFlag==FALSE){
		VCPDbErrorFlag=VCPINTDBNOTOPEN;
		VCPINTDbErrorDisplay(fname, lnr);
		return(VCPINTDBNOTOPEN);
	}

	(*idx)=65535;  /* max index, insert as last record */
	hnd=DmNewRecord (VCPINTDbRef, idx, StrLen(dat)+1);
	if (hnd==NULL){
		VCPDbErrorFlag=VCPINTCOULDNOTINSERT;
		VCPINTDbErrorDisplay(fname, lnr);
		return(VCPINTCOULDNOTINSERT);
	}
	lptr=MemHandleLock(hnd);
	err=DmWriteCheck(lptr, 0, StrLen(dat)+1);
	if (err!=0){
		VCPDbErrorFlag=err;
		VCPINTDbErrorDisplay(fname, lnr);
		return(err);
	}
	DmWrite(lptr, 0,  dat, StrLen(dat)+1);
	MemHandleUnlock(hnd);
	DmReleaseRecord(VCPINTDbRef, *idx, TRUE);
	return(0);
}