version 2003
PA_GetBlobHandleField (tNum; field) PA_Handle
Parameter | Type | Description | |
tNum | short | Table number of the field to access | |
field | short | Field number of the field to access | |
Function result | PA_Handle | Handle to the BLOB |
Description
The routine PA_GetBlobHandleField returns a handle to the BLOB data of the field number fNum of the current record of table number tNum.
If the field is not a BLOB field, the routine returns 0 and an error code in PA_GetLastError.
WARNING
The handle belongs to 4th Dimension. Never dispose of it.
To get a copy of the data, use PA_GetBlobField. It is is really only useful in getting the Handle for saving memory, especially if the plug-in just want to view the BLOB content as "read-only".
Example
Searching in a BLOB : We do not need a copy of the BLOB for that. The handle is ok.
long MySearchInBlobField( short tNum, short fNum, char *toFind, long toFindLength ) { long pos = -1L; PA_Handle h = 0L; char *pt; h = PA_GetBlobHandleField( tNum, fNum ); if ( h ) { pt = PA_LockHandle( h ); pos = SuperSearchRoutine( pt, PA_GetHandleSize( h ), toFind, toFindLength ); PA_UnlockHandle( h ); } return pos; // No cleanup of h here ! }
See Also
PA_GetBlobField, PA_SetBlobHandleField.
Error Handling
Use PA_GetLastError to see if an error occurred (eER_InvalidFileNumber, eER_InvalidFieldNumber).