Product Documentation

c-treeDB API for C++

Previous Topic

Next Topic

C++ c-treeDB Tutorial 3: Record/Row Locking

drivers\drivers\cpp.nav\tutorials\ctpp_tutorial3.cpp

Now we will explore row/record locks using the FairCom DB C++ Database Framework.

The functionality for this tutorial focuses on inserting/adding rows/records, then updating a single row/record in the customer master table under locking control. The application will pause after a LOCK is placed on a row/record. Another instance of this application should then be launched, which will block, waiting on the lock held by the first instance. Pressing the <Enter> key will enable the first instance to proceed. This will result in removing the lock thereby allowing the second instance to continue execution. Launching two processes provides a visual demonstration of the effects of locking and a basis for experimentation on your own.

As with all other examples in the c-tree tutorial series, this tutorial simplifies the creation and use of a database into four simple steps: Initialize(), Define(), Manage(), and you’re Done() !

Tutorial #3: Locking

Here we demonstrate the enforcement of data integrity by introducing record/row "locking".

  • Initialize() - Connects to the FairCom Database Engine.
  • Define() - Defines and creates a "customer master" (custmast) table/file.
  • Manage() - Adds a few rows/records, manipulates them, and displays the results.
  • Done() - Disconnects from FairCom Database Engine.

Note our simple Main() function:

//

// main()

//

// The main() function implements the concept of "init, define, manage

// and you're done..."

//

int main (COUNT argc, pTEXT argv[])

{

#ifdef LOCK_SUPPORT

Initialize();

Define();

Manage();

Done();

#else

printf("\nThis tutorial demonstrates basic Record Locking. Record Locking is not");

printf("\napplicable to c-tree's SingleUser model. In order to run this program");

printf("\nselect a c-tree Multi-User or Client-Side type c-tree model");

#endif

printf("\nPress <ENTER> key to exit . . .\n");

getchar();

return(0);

}

We suggest opening the source code with your own editor.

Continue now to review these four steps.

TOCIndex