Product Documentation

FairCom DB API API for C++ - Developers Guide

Previous Topic

Next Topic

Find Modes

Use the following find modes with the record find methods:

FairCom DB API
Find mode

FairCom DB API .NET
Find Mode

Explanation

CTFIND_EQ

EQ

Find a record equal to the target

CTFIND_LT

LT

Find a record less than target

CTFIND_LE

LE

Find a record less or equal than target

CTFIND_GT

GT

Find a record greater than target

CTFIND_GE

GE

Find a record greater or equal than target

Note: The Find Mode CTFIND_EQ requires that the target contains values for all segments that compose the index and the index cannot allow duplicates.

Note: FairCom DB API .NET defines this mode with the FIND_MODE enum.

Previous Topic

Next Topic

Building a target key

A target key can be built using most of the steps used to find a record using CTRecord::FindTarget() method. To build a target key you must:

  1. Clear a record buffer
  2. Set the default index with the appropriate value
  3. Populate the fields that makeup the index segment
  4. Call CTRecord::BuildTargetKey() with the appropriate find mode and the buffer to receive the target key

// build a target key

CTRecord ARecord(ATable);

TEXT key[256];

VRLEN keylen = sizeof(key);


// clear the record buffer

ARecord.Clear();


// set the default index to index 0

ARecord.SetDefaultIndex(0);


// populate the 'product' field

ARecord.SetFieldAsString("product", "DISKETTE");


// build the target key

try

{

ARecord.BuildTargetKey(CTFIND_EQ, key, &keylen);

}

catch (CTException &err)

{

printf("Build target key failed with error %d\n", err.GetErrorCode());

}

Previous Topic

Next Topic

Finding records by target key

A record can also be found by passing a target key already built by calling CTRecord::FindTarget() method. CTRecord::FindTarget() takes as its parameters a pointer to a target key and the find mode.

// find record with a target key

CTRecord ARecord(ATable);

TEXT key[256];

VRLEN keylen = sizeof(key);


// clear the record buffer

ARecord.Clear();


// set the default index to index 0

ARecord.SetDefaultIndex(0);


// populate the 'product' field

ARecord.SetFieldAsString("product", "DISKETTE");


// build the target key

ARecord.BuildTargetKey(CTFIND_EQ, key, &keylen);

try

{

if (ARecord.FindTarget(key, CTFIND_EQ))

printf("Record found\n");

else

printf("Record not found\n");

}

catch (CTException &err)

{

printf("Find target failed with error %d\n", err.GetErrorCode());

}

Previous Topic

Next Topic

Finding records by ROWID

A record can be quickly located if the ROWID for that record is known by calling CTRecord::FindRowid(). CTRecord::FindRowid() take as its parameters the ROWID value and the find mode.

// find record with rowid of 1000

CTRecord ARecord(ATable);

try

{
if (ARecord.FindRowid(1000, CTFIND_EQ))

printf("Record found\n");

else

printf("No record found\n");

}

catch (CTException &err)

{

printf("Find Rowid failed with error %d\n", err.GetErrorCode());

}

TOCIndex