Product Documentation

c-treeDB API for C#

Previous Topic

Next Topic

Define

Define() establishes specific data definitions. This involves defining columns/fields and creating the tables/files with optional indexes.

Below is the code for Define():

//

// Define()

//

// Open the table, if it exists. Otherwise create and open the table

//

static void Define()

{

bool do_create = false;

Console.WriteLine("DEFINE");

try

{

Console.WriteLine("\tOpen table...");

MyTable.Open("custmast", OPEN_MODE.NORMAL_OPEN);

}

catch (CTException)

{

// table does not exist. Try to create it

do_create = true;

}

if (do_create)

{

// create the table

Console.WriteLine("\tAdd fields...");

try

{

MyTable.AddField("cm_custnumb", FIELD_TYPE.FSTRING, 4);

MyTable.AddField("cm_custzipc", FIELD_TYPE.FSTRING, 9);

MyTable.AddField("cm_custstat", FIELD_TYPE.FSTRING, 2);

MyTable.AddField("cm_custrtng", FIELD_TYPE.FSTRING, 1);

MyTable.AddField("cm_custname", FIELD_TYPE.VSTRING, 47);

MyTable.AddField("cm_custaddr", FIELD_TYPE.VSTRING, 47);

MyTable.AddField("cm_custcity", FIELD_TYPE.VSTRING, 47);

Console.WriteLine("\tCreate table...");

MyTable.Create("custmast", CREATE_MODE.NORMAL_CREATE);

MyTable.Open("custmast", OPEN_MODE.NORMAL_OPEN);

}

catch (CTException E)

{

Handle_Exception(E);

}

}

else

Check_Table_Mode(MyTable);

}

//

// Check_Table_Mode()

//

// Check if existing table has transaction processing flag enabled.

// If a table is under transaction processing control, modify the

// table mode to disable transaction processing

//

static void Check_Table_Mode(CTTable table)

{

try

{

// get table create mode

CREATE_MODE mode = table.GetCreateMode();

// check if table is under transaction processing control

if ((mode & CREATE_MODE.TRNLOG_CREATE) != 0)

{

// change file mode to disable transaction processing

mode ^= CREATE_MODE.TRNLOG_CREATE;

table.UpdateCreateMode(mode);

}

}

catch (CTException E)

{

Handle_Exception(E);

}

}

TOCIndex