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()
*
* Create the table for containing a list of existing customers
*/
void Define(void)
{
CTSQLRET rc;
printf("DEFINE\n");
ctsqlExecuteDirect(hCmd, CT_STRING_LITERAL("DROP TABLE ordritem"));
ctsqlExecuteDirect(hCmd, CT_STRING_LITERAL("DROP TABLE custordr"));
ctsqlExecuteDirect(hCmd, CT_STRING_LITERAL("DROP TABLE custmast"));
ctsqlExecuteDirect(hCmd, CT_STRING_LITERAL("DROP TABLE itemmast"));
/* create table */
printf("\tCreate table...\n");
if ((rc = ctsqlExecuteDirect(hCmd,
CT_STRING_LITERAL("CREATE TABLE custmast ( \
cm_custnumb CHAR(4), \
cm_custzipc CHAR(9), \
cm_custstat CHAR(2), \
cm_custrtng CHAR(1), \
cm_custname VARCHAR(47), \
cm_custaddr VARCHAR(47), \
cm_custcity VARCHAR(47))")
)) != CTSQLRET_OK)
Handle_Error("ctsqlExecuteDirect(CREATE TABLE)");
if ((rc = ctsqlExecuteDirect(hCmd,
CT_STRING_LITERAL("CREATE UNIQUE INDEX cm_custnumb_idx ON custmast (cm_custnumb)")
)) != CTSQLRET_OK)
Handle_Error("ctsqlExecuteDirect(CREATE INDEX)");
if ((rc = ctsqlCommit(hConn)) != CTSQLRET_OK)
Handle_Error("ctsqlCommit()");
}