home *** CD-ROM | disk | FTP | other *** search
/ Total C++ 2 / TOTALCTWO.iso / borland / 32snipit.pak / FORMAT.C < prev    next >
C/C++ Source or Header  |  1997-05-06  |  5KB  |  154 lines

  1. // BDE32 3.x - (C) Copyright 1996 by Borland International
  2.  
  3. // format.c
  4. #include "snipit.h"
  5.  
  6. static const char szTblName[] = "FORMAT";
  7. static const char szTblType[] = szPARADOX;
  8.  
  9. // Field descriptor used in creating a table.
  10. static SNIPFAR FLDDesc fldDesc[] = {
  11.               { // Field 1 - DATE
  12.                 1, "DATE", fldDATE, fldUNKNOWN,
  13.                 0, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE
  14.               },
  15.               { // Field 2 - TIME
  16.                 2, "TIME", fldTIME, fldUNKNOWN,
  17.                 0, 0, 0, 0, 0, fldvNOCHECKS, fldrREADWRITE
  18.               }
  19.              }; // Array of field descriptors
  20.  
  21. // The number of fields in the table.
  22. static const UINT16 uNumFields = sizeof(fldDesc) / sizeof (fldDesc[0]);
  23.  
  24. //=====================================================================
  25. //  Function:
  26. //          Format();
  27. //
  28. //  Description:
  29. //          This example shows how to change the formatting of
  30. //          Date and Time fields.
  31. //=====================================================================
  32. void
  33. Format (void)
  34. {
  35.     hDBIDb      hDb = 0;            // Handle to the database
  36.     hDBICur     hCur = 0;           // Handle to the table
  37.     DBIResult   rslt;               // Return value from IDAPI functions
  38.     CRTblDesc   crTblDesc;          // Create table descriptor
  39.     FMTDate     fmtDate;            // Date format
  40.     FMTTime     fmtTime;            // Time format
  41.     UINT16      uDispNumRecs = 10;  // Number of records to add and
  42.                                     //   display.
  43.  
  44.     Screen("*** Changing the format of Date and Time ***\r\n");
  45.  
  46.     BREAK_IN_DEBUGGER();
  47.  
  48.     Screen("    Initializing IDAPI...");
  49.     if (InitAndConnect(&hDb) != DBIERR_NONE)
  50.     {
  51.         Screen("\r\n*** End of Example ***");
  52.         return;
  53.     }
  54.  
  55.     Screen("    Setting the database directory...");
  56.     rslt = DbiSetDirectory(hDb, (pCHAR) szTblDirectory);
  57.     ChkRslt(rslt, "SetDirectory");
  58.  
  59.     Screen("    Initializing the table descriptor...");
  60.     memset((void *) &crTblDesc , 0, sizeof(CRTblDesc));
  61.     strcpy(crTblDesc.szTblName, szTblName);
  62.     strcpy(crTblDesc.szTblType, szTblType);
  63.     crTblDesc.iFldCount = uNumFields;
  64.     crTblDesc.pfldDesc  = fldDesc;
  65.  
  66.     Screen("    Creating the %s table...", szTblName);
  67.     rslt = DbiCreateTable(hDb, TRUE, &crTblDesc);
  68.     if (ChkRslt(rslt, "CreateTable") != DBIERR_NONE)
  69.     {
  70.         CloseDbAndExit(&hDb);
  71.         Screen("\r\n*** End of Example ***");
  72.         return;
  73.     }            
  74.  
  75.     Screen("    Fill the table with random data...");
  76.     FillTable(hDb, (pCHAR) szTblName, (pCHAR) szTblType, uDispNumRecs);
  77.  
  78.     Screen("    Open the %s table...", szTblName);
  79.     rslt = DbiOpenTable(hDb, (pCHAR) szTblName, (pCHAR) szTblType,
  80.                         NULL, NULL, 0, dbiREADONLY, dbiOPENSHARED,
  81.                         xltFIELD, FALSE, NULL, &hCur);
  82.     if (ChkRslt(rslt, "OpenTable") != DBIERR_NONE)
  83.     {
  84.         CloseDbAndExit(&hDb);
  85.         Screen("\r\n*** End of Example ***");
  86.         return;
  87.     }
  88.  
  89.     Screen("    Display the %s table with default date and time formats...",
  90.            szTblName);
  91.     DisplayTable(hCur, uDispNumRecs);
  92.  
  93.     // Get the format of the date.
  94.     rslt = DbiGetDateFormat(&fmtDate);
  95.     ChkRslt(rslt, "GetDateFormat");
  96.  
  97.     Screen("\r\n    Change the date format: toggle between MM/DD/YY and"
  98.            " DD/MM/YY...");
  99.     if (fmtDate.iDateMode)
  100.     {
  101.         fmtDate.iDateMode = 0;
  102.     }
  103.     else
  104.     {
  105.         fmtDate.iDateMode = 1;
  106.     }
  107.  
  108.     // Change the format of the date.
  109.     rslt = DbiSetDateFormat(&fmtDate);
  110.     ChkRslt(rslt, "SetDateFormat");
  111.  
  112.     // Get the time format.
  113.     rslt = DbiGetTimeFormat(&fmtTime);
  114.     ChkRslt(rslt, "GetTimeFormat");
  115.  
  116.     Screen("    Change the time format: toggle between 12 and 24 hour"
  117.            " clock...");
  118.     if (fmtTime.bTwelveHour)
  119.     {
  120.         fmtTime.bTwelveHour = 0;
  121.     }
  122.     else
  123.     {
  124.         fmtTime.bTwelveHour = 1;
  125.     }
  126.  
  127.     // Change the time format.
  128.     rslt = DbiSetTimeFormat(&fmtTime);
  129.     ChkRslt(rslt, "SetDateFormat");
  130.  
  131.     // Set the cursor to the beginning of the table.
  132.     rslt = DbiSetToBegin(hCur);
  133.     ChkRslt(rslt, "SetToBegin");
  134.  
  135.     Screen("    Display the \"%s\" table with the date and time"
  136.            " formats changed...", szTblName);
  137.     DisplayTable(hCur, uDispNumRecs);
  138.  
  139.     Screen("\r\n    Close the %s table...", szTblName);
  140.     rslt = DbiCloseCursor(&hCur);
  141.     ChkRslt(rslt, "CloseCursor");
  142.  
  143.     Screen("    Deleting the %s table...", szTblName);
  144.     rslt = DbiDeleteTable(hDb, (pCHAR) szTblName, (pCHAR) szTblType);
  145.     ChkRslt(rslt, "DeleteTable");
  146.  
  147.     Screen("    Close the database and exit IDAPI...");
  148.     CloseDbAndExit(&hDb);
  149.  
  150.     Screen("\r\n*** End of Example ***");
  151. }
  152.  
  153.  
  154.