FindNextSIndexRecord finds the next matching record by the secondary index of the open RMS file and stores the record data in the internal query buffer.


Function FindNextSIndexRecord(rmsHandle as Integer, nindex As Integer) As Integer



RMS file handle


0 based secondary index number

Return Values

On success, FindNextSIndexRecord returns 1.  If there is no matching record, it returns 0.


Before calling function FindNextSIndexRecord,  you must set the query fields data by calling

functions RegisterStringFieldDataRegisterStringFieldData, RegisterCharFieldDataRegisterCharFieldData, RegisterIntegerFieldDataRegisterIntegerFieldData,

RegisterLongFieldDataRegisterLongFieldData, RegisterRealFieldDataRegisterRealFieldData, RegisterMoneyFieldDataRegisterMoneyFieldData,

RegisterDateFieldDataRegisterDateFieldData, RegisterTimeFieldDataRegisterTimeFieldData or RegisterBoolFieldDataRegisterBoolFieldData depends

on field types. 

If you want to let function FindNextSIndexRecord store the specified fields data in the

internal query buffer, you can call RegisterFieldRegisterField to add field names to the internal data query

field name list before calling function FindNextSIndexRecord. By default,

FindNextSIndexRecord store all fields’ data in the query buffer. 

To get fields data:

If function RegisterFieldRegisterField is not called, first call GetFieldCountGetFieldCount to get the number of fields in

the RMS file then for each field call GetFieldTypeGetFieldType and GetStringFieldGetStringField, GetCharFieldGetCharField,

GetIntegerFieldGetIntegerField, GetLongFieldGetLongField, GetRealFieldGetRealField, GetMoneyFieldGetMoneyField, GetDateFieldGetDateField,

GetTimeFieldGetTimeField, GetBooleanFieldGetBooleanField depends on the field types

If function RegisterFieldRegisterField is called, call FirstRegistedFieldFirstRegistedField and NextRegistedFieldNextRegistedField to get

the field names corresponding to the field data in the query buffer and for each field name call

GetFieldTypebyNameGetFieldTypebyName and  GetStringFieldbyNameGetStringFieldbyName, GetCharFieldbyNameGetCharFieldbyName,

GetIntegerFieldbyNameGetIntegerFieldbyName, GetLongFieldbyNameGetLongFieldbyName, GetRealFieldbyNameGetRealFieldbyName,

GetMoneyFieldbyNameGetMoneyFieldbyName, GetDateFieldbyNameGetDateFieldbyName, GetTimeFieldbyNameGetTimeFieldbyName and

GetBooleanFieldbyNameGetBooleanFieldbyName depends on the field types.

See Also

FindLastSIndexRecord, FindNextSIndexRecord, FindPrevSIndexRecord,