FindSIndexRecord finds the first record with secondary index value greater than or equal to the query value by the secondary index of the open RMS file and stores the record data in the internal query buffer.


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



RMS file handle


0 based secondary index number

Return Values

On success, FindSIndexRecord returns 1.  If failed, it returns 0.


Before calling function FindSIndexRecord,  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 FindSIndexRecord 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 FindSIndexRecord. By default,

FindSIndexRecordstore 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

LastSIndexRecord, NextSIndexRecord, PrevSIndexRecord,