C Examples: DbiCreateTable

<< Click to Display Table of Contents >>

Navigation:  »No topics above this level«

C Examples: DbiCreateTable

Return to chapter overview

Example 1: Create a Paradox table:

This example uses the following input:
         fDbiCreateTable1(hDb);

DBIResult fDbiCreateTable1(hDBIDb hTmpDb)

{

   CHAR szTblType[] = szPARADOX;

   CHAR szTblName[] = "PX_Table";

   CRTblDesc   TblDesc;    // Create Table Descriptor

   DBIResult rslt;

   UINT16 NumFields  = 2;

   FLDDesc fldDesc[] = {

            { // Field 1 - TIMESTAMP

               1, "MyAlpha", fldPDXDATETIME, fldUNKNOWN, 0, 0,

               0, 0, 0, fldvNOCHECKS, fldrREADWRITE

            },

            {  // FIELD 2 - AUTOINCREMENT

               2, "MyNumber", fldPDXAUTOINC, fldUNKNOWN, 0, 0, 0,

               0, 0, fldvNOCHECKS, fldrREADWRITE

            }

   };

   memset((void *) &TblDesc, 0, sizeof(CRTblDesc));

   lstrcpy(TblDesc.szTblName, szTblName);

   lstrcpy(TblDesc.szTblType, szTblType);

   TblDesc.iFldCount = NumFields;

   TblDesc.pfldDesc = fldDesc;

   //Could add indexes, validity checks, and security descriptors here.

   rslt = Chk(DbiCreateTable(hTmpDb, TRUE, &TblDesc));

   return rslt;

}

 

Example 2: Create a dBASE table:

This example uses the following input:
         fDbiCreateTable2(hDb);

DBIResult fDbiCreateTable2(hDBIDb hTmpDb)

{

   CHAR szTblType[] = szDBASE;

   CHAR szTblName[] = "dBASE_TBL";

   CRTblDesc   TblDesc;    // Create Table Descriptor

   DBIResult rslt;

   UINT16 NumFields  = 2;

   FLDDesc fldDesc[] = {

            { // Field 1 - MEMO

               1, "MyAlpha", fldDBMEMO, fldUNKNOWN, 0, 0,

               0, 0, 0, fldvNOCHECKS, fldrREADWRITE

            },

            {  // FIELD 2 - BOOLEAN

               2, "MyNumber", fldDBBOOL, fldUNKNOWN, 0, 0, 0,

               0, 0, fldvNOCHECKS, fldrREADWRITE

            }

   };

   memset((void *) &TblDesc, 0, sizeof(CRTblDesc));

   lstrcpy(TblDesc.szTblName, szTblName);

   lstrcpy(TblDesc.szTblType, szTblType);

   TblDesc.iFldCount = NumFields;

   TblDesc.pfldDesc = fldDesc;

   //Could add indexes, validity checks, and security descriptors here.

   rslt = Chk(DbiCreateTable(hTmpDb, TRUE, &TblDesc));

   return rslt;

}

 

Example 3: Create a InterBase table:

This example uses the following input:
         fDbiCreateTable3(hDb);

DBIResult fDbiCreateTable3(hDBIDb hTmpDb)

{

   CHAR szTblName[] = "IB_TBL";

   CRTblDesc   TblDesc;    // Create Table Descriptor

   DBIResult rslt;

   UINT16 NumFields  = 2;

   FLDDesc fldDesc[] = {

            { // Field 1 - MEMO

               1, "MyAlpha", fldIBCHAR, fldUNKNOWN, 300, 0,

               0, 0, 0, fldvNOCHECKS, fldrREADWRITE

            },

            {  // FIELD 2 - BLOB

               2, "MyNumber", fldIBBLOB, fldUNKNOWN, 0, 0, 0,

               0, 0, fldvNOCHECKS, fldrREADWRITE

            }

   };

   memset((void *) &TblDesc, 0, sizeof(CRTblDesc));

   lstrcpy(TblDesc.szTblName, szTblName);

   lstrcpy(TblDesc.szTblType, szTblType);

   TblDesc.iFldCount = NumFields;

   TblDesc.pfldDesc = fldDesc;

   //Could add indexes, validity checks, and security descriptors here.

   rslt = Chk(DbiCreateTable(hTmpDb, TRUE, &TblDesc));

   return rslt;

}