home *** CD-ROM | disk | FTP | other *** search
/ Datatid 1999 #6 / Datatid_1999-06.iso / internet / Tango352Promo / P.SQL / PTKPKG.1 / CNVSEQ.C < prev    next >
Encoding:
C/C++ Source or Header  |  1997-01-03  |  8.4 KB  |  357 lines

  1. /****************************************************************************
  2. **
  3. ** Copyright (c) 1982-1997 Pervasive Software Inc. All Rights Reserved.
  4. **
  5. ****************************************************************************/
  6. /****************************************************************************
  7.    CNVSEQ.C
  8.       This module converts the SSQL function number into a sequenced function
  9.       number that is used by fixparms() and unfixparms().
  10. ****************************************************************************/
  11. #include <sqlapi.h>
  12. #include <sqlconst.h>
  13. #include <btitypes.h>
  14. #include <fixparms.h>
  15. #include <wxqlords.h>
  16.  
  17.  
  18. /*
  19. *****************************************************************************
  20. **  cnvToSeq
  21. **
  22. **  Description:
  23. **      Convert a signature/fcn pair to a sequenced function code.
  24. **
  25. **  Parameters:
  26. **      sig:            four-byte signature that identifies the type of
  27. **        <input>       parameter block.
  28. **
  29. **      fcnin:          Input function number.
  30. **        <input>
  31. **
  32. **      *fcnout:        Sequenced function number
  33. **        <output>
  34. **
  35. **
  36. **  Return value:
  37. **      SS_SUCCESS
  38. **      SQL_INVALID_FUNCTIONCODE
  39. **      SQL_INVALID_DATA
  40. **      SQL_INVALID_PRIMITIVE_FUNCTION
  41. **
  42. *****************************************************************************
  43. */
  44. BTI_SINT cnvToSeq( BTI_ULONG sig, BTI_SINT fcnin, BTI_SINT *fcnout )
  45.  
  46. {
  47.     int stat = SS_SUCCESS;
  48.  
  49.     if ( sig == XQLP_SIG )
  50.     {
  51.         switch (fcnin)
  52.         {
  53.             case pAccessFcn:
  54.                 *fcnout = spAccessFcn;
  55.                 break;
  56.  
  57.             case pCharFcn:
  58.                 *fcnout = spCharFcn;
  59.                 break;
  60.  
  61.             case pCnvFcn:
  62.                 *fcnout = spCnvFcn;
  63.                 break;
  64.  
  65.             case pComputeFcn:
  66.                 *fcnout = spCompFcn;
  67.                 break;
  68.  
  69.             case pDDFcn:
  70.                 *fcnout = spDDFcn;
  71.                 break;
  72.  
  73.             case pDDAttrFcn:
  74.                 *fcnout = spDDAttrFcn;
  75.                 break;
  76.  
  77.             case pDDCreFcn:
  78.                 *fcnout = spDDCreFcn;
  79.                 break;
  80.  
  81.             case pDDDrpFcn:
  82.                 *fcnout = spDDDrpFcn;
  83.                 break;
  84.  
  85.             case pDDFieldFcn:
  86.                 *fcnout = spDDFieldFcn;
  87.                 break;
  88.  
  89.             case pDDFileFcn:
  90.                 *fcnout = spDDFileFcn;
  91.                 break;
  92.  
  93.             case pDDIndexFcn:
  94.                 *fcnout = spDDIndexFcn;
  95.                 break;
  96.  
  97.             case pDDModFcn:
  98.                 *fcnout = spDDModFcn;
  99.                 break;
  100.  
  101.             case pDDPathFcn:
  102.                 *fcnout = spDDPathFcn;
  103.                 break;
  104.  
  105.             case pDDViewFcn:
  106.                 *fcnout = spDDViewFcn;
  107.                 break;
  108.  
  109.             case pDescribeFcn:
  110.                 *fcnout = spDescribeFcn;
  111.                 break;
  112.  
  113.             case pFetchFcn:
  114.                 *fcnout = spFetchFcn;
  115.                 break;
  116.  
  117.             case pFieldFcn:
  118.                 *fcnout = spFieldFcn;
  119.                 break;
  120.  
  121.             case pFreeFcn:
  122.                 *fcnout = spFreeFcn;
  123.                 break;
  124.  
  125.             case pInsertFcn:
  126.                 *fcnout = spInsertFcn;
  127.                 break;
  128.  
  129.             case pJoinFcn:
  130.                 *fcnout = spJoinFcn;
  131.                 break;
  132.  
  133.             case pLogInFcn:
  134.                 *fcnout = spLogInFcn;
  135.                 break;
  136.  
  137.             case pLogOutFcn:
  138.                 *fcnout = spLogOutFcn;
  139.                 break;
  140.  
  141.             case pMaskFcn:
  142.                 *fcnout = spMaskFcn;
  143.                 break;
  144.  
  145.             case pMoveFldFcn:
  146.                 *fcnout = spMoveFldFcn;
  147.                 break;
  148.  
  149.             case pNewFcn:
  150.                 *fcnout = spNewFcn;
  151.                 break;
  152.  
  153.             case pOrderFcn:
  154.                 *fcnout = spOrderFcn;
  155.                 break;
  156.  
  157.             case pPswdFcn:
  158.                 *fcnout = spPswdFcn;
  159.                 break;
  160.  
  161.             case pRecallFcn:
  162.                 *fcnout = spRecallFcn;
  163.                 break;
  164.  
  165.             case pRemallFcn:
  166.                 *fcnout = spRemallFcn;
  167.                 break;
  168.  
  169.             case pRemoveFcn:
  170.                 *fcnout = spRemoveFcn;
  171.                 break;
  172.  
  173.             case pResetFcn:
  174.                 *fcnout = spResetFcn;
  175.                 break;
  176.  
  177.             case pRestrictFcn:
  178.                 *fcnout = spRestrictFcn;
  179.                 break;
  180.  
  181.             case pSecurFcn:
  182.                 *fcnout = spSecurFcn;
  183.                 break;
  184.  
  185.             case pStatFcn:
  186.                 *fcnout = spStatFcn;
  187.                 break;
  188.  
  189.             case pStopFcn:
  190.                 *fcnout = spStopFcn;
  191.                 break;
  192.  
  193.             case pStoreFcn:
  194.                 *fcnout = spStoreFcn;
  195.                 break;
  196.  
  197.             case pTransFcn:
  198.                 *fcnout = spTransFcn;
  199.                 break;
  200.  
  201.             case pUpdallFcn:
  202.                 *fcnout = spUpdallFcn;
  203.                 break;
  204.  
  205.             case pUpdateFcn:
  206.                 *fcnout = spUpdateFcn;
  207.                 break;
  208.  
  209.             case pUserFcn:
  210.                 *fcnout = spUserFcn;
  211.                 break;
  212.  
  213.             case pValFcn:
  214.                 *fcnout = spValFcn;
  215.                 break;
  216.  
  217.             case pVersionFcn:
  218.                 *fcnout = spVersFcn;
  219.                 break;
  220.  
  221.             case pVers2Fcn:
  222.                 *fcnout = spVers2Fcn;
  223.                 break;
  224.  
  225.             default:
  226.                 stat = SQL_INVALID_PRIMITIVE_FUNCTION;
  227.                 break;
  228.         } /* end switch */
  229.     }
  230.     else if (sig == XQLM_SIG)
  231.     {
  232.         switch (fcnin)
  233.         {
  234.             case mConvFcn:
  235.                 *fcnout = smCnvFcn;
  236.                 break;
  237.  
  238.             case mCompFcn:
  239.                 *fcnout = smCompFcn;
  240.                 break;
  241.  
  242.             case mCursorFcn:
  243.                 *fcnout = smCursorFcn;
  244.                 break;
  245.  
  246.             case mDescribeFcn:
  247.                 *fcnout = smDescribeFcn;
  248.                 break;
  249.  
  250.             case mExecFcn:
  251.                 *fcnout = smExecFcn;
  252.                 break;
  253.  
  254.             case mFetchFcn:
  255.                 *fcnout = smFetchFcn;
  256.                 break;
  257.  
  258.             case mFormatFcn:
  259.                 *fcnout = smFormatFcn;
  260.                 break;
  261.  
  262.             case mFreeFcn:
  263.                 *fcnout = smFreeFcn;
  264.                 break;
  265.  
  266.             case mLogInFcn:
  267.                 *fcnout = smLogInFcn;
  268.                 break;
  269.  
  270.             case mLogOutFcn:
  271.                 *fcnout = smLogOutFcn;
  272.                 break;
  273.  
  274.             case mMaskFcn:
  275.                 *fcnout = smMaskFcn;
  276.                 break;
  277.  
  278.             case mSPUtilFcn:
  279.                 *fcnout = smSPUtilFcn;
  280.                 break;
  281.  
  282.             case mStatFcn:
  283.                 *fcnout = smStatFcn;
  284.                 break;
  285.  
  286.             case mStopFcn:
  287.                 *fcnout = smStopFcn;
  288.                 break;
  289.  
  290.             case mSubstFcn:
  291.                 *fcnout = smSubstFcn;
  292.                 break;
  293.  
  294.             case mValFcn:
  295.                 *fcnout = smValFcn;
  296.                 break;
  297.  
  298.             case mVersFcn:
  299.                 *fcnout = smVersFcn;
  300.                 break;
  301.  
  302.             default:
  303.                 stat = SQL_INVALID_FUNCTIONCODE;
  304.                 break;
  305.         } /* end switch */
  306.     }
  307.     else if (sig == DBNM_SIG)
  308.     {
  309.         switch (fcnin)
  310.         {
  311.             case dbnAdd:
  312.                 *fcnout = sdbnAdd;
  313.                 break;
  314.  
  315.             case dbnDrop:
  316.                 *fcnout = sdbnDrop;
  317.                 break;
  318.  
  319.             case dbnGetCnt:
  320.                 *fcnout = sdbnGetCnt;
  321.                 break;
  322.  
  323.             case dbnGetInfo:
  324.                 *fcnout = sdbnGetInfo;
  325.                 break;
  326.  
  327.             case dbnGetNames:
  328.                 *fcnout = sdbnGetNames;
  329.                 break;
  330.  
  331.             case dbnModify:
  332.                 *fcnout = sdbnModify;
  333.                 break;
  334.  
  335.             case dbnRename:
  336.                 *fcnout = sdbnRename;
  337.                 break;
  338.  
  339.             case dbnUnload:
  340.                 *fcnout = sdbnUnload;
  341.                 break;
  342.  
  343.             default:
  344.                 stat = SQL_INVALID_DATA;
  345.  
  346.         } /* end switch */
  347.     }
  348.     else
  349.     {
  350.         stat = SQL_INVALID_FUNCTIONCODE;
  351.     } /* end if-else */
  352.  
  353.     return( stat );
  354.  
  355. } /* end cnvToSeq */
  356.  
  357.