home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a007 / 1.ddi / CASEINS.C < prev    next >
Encoding:
C/C++ Source or Header  |  1992-10-15  |  1.7 KB  |  73 lines

  1. /* The SETUP.C program must be compiled and run before this example */
  2. /* can be executed. */
  3.  
  4. #include <stdio.h>
  5. #include "pxengine.h"
  6.  
  7. #define TABLENAME  "table"
  8. #define CASEINS 1
  9.  
  10. int main(void)
  11. {
  12.   TABLEHANDLE tblHandle;
  13.   RECORDHANDLE recHandle;
  14.   FIELDHANDLE indexID;
  15.   FIELDHANDLE fields[] = {6};
  16.   FIELDHANDLE fldHandles[6];
  17.   char buff[BUFSIZ];
  18.   PXCODE pxErr;
  19.  
  20.   PXInit();
  21.  
  22.   /* Add a case-insensitive composite secondary index. */
  23.  
  24.   PXKeyMap(TABLENAME, 1, fields, "Case Insens. Index", CASEINS, &indexID);
  25.   fldHandles[0] = indexID;
  26.   PXKeyAdd(TABLENAME, 1, fldHandles, SECONDARY);
  27.  
  28.   /* Open the table on the composite secondary index. */
  29.  
  30.   PXTblOpen(TABLENAME, &tblHandle, indexID, 0);
  31.   PXRecBufOpen(tblHandle, &recHandle);
  32.  
  33.   /* Search for a value that appears twice in table (in upper */
  34.   /* and lower case).   */
  35.  
  36.   PXPutAlpha(recHandle, 6, "cat");
  37.   if ((pxErr = PXSrchFld(tblHandle, recHandle, indexID, SEARCHFIRST))
  38.     != PXSUCCESS)
  39.   {
  40.     if (pxErr == PXERR_RECNOTFOUND)
  41.       printf("No match found.\n");
  42.     else
  43.       printf("%s\n", PXErrMsg(pxErr));
  44.   }
  45.   else
  46.   {
  47.     PXRecGet(tblHandle, recHandle);
  48.     PXGetAlpha(recHandle, 6, BUFSIZ, buff);
  49.     printf("The first value found was %s\n", buff);
  50.   }
  51.  
  52.   if ((pxErr = PXSrchFld(tblHandle, recHandle, indexID, SEARCHNEXT))
  53.     != PXSUCCESS)
  54.   {
  55.     if (pxErr == PXERR_RECNOTFOUND)
  56.       printf("No match found.\n");
  57.     else
  58.       printf("%s\n", PXErrMsg(pxErr));
  59.   }
  60.   else
  61.   {
  62.     PXRecGet(tblHandle, recHandle);
  63.     PXGetAlpha(recHandle, 6, BUFSIZ, buff);
  64.     printf("The next value found was %s\n", buff);
  65.   }
  66.  
  67.  
  68.   PXRecBufClose(recHandle);
  69.   PXTblClose(tblHandle);
  70.   PXExit();
  71.   return(pxErr);
  72. }
  73.