cmpdecl.h
上传用户:dgyhgb
上传日期:2007-01-07
资源大小:676k
文件大小:1k
源码类别:

SQL Server

开发平台:

Unix_Linux

  1. /* cmpftn.h */
  2. #ifndef _CMPDECL_H_
  3. #define _CMPDECL_H_
  4. #include "fieldtp.h"
  5. #include "rnmtp.h"
  6. #include "totdecl.h"
  7. i4_t f1b __P((char *a1, char *b1, u2_t n1, u2_t n2));
  8. i4_t f2b __P((char *a1, char *b1, u2_t n1, u2_t n2));
  9. i4_t f4b __P((char *a1, char *b1, u2_t n1, u2_t n2));
  10. char *ftint __P((i4_t at, char *a, char **a1, char **a2, i4_t n));
  11. char *ftch __P((i4_t at, char *a, char **a1, char **a2, u2_t *n1, u2_t *n2));
  12. i4_t chcmp __P((char *a, char *b, u2_t n1, u2_t n2));
  13. i4_t ffloat __P((char *a, char *b, u2_t n1, u2_t n2));
  14. i4_t digcmp __P((char *a, char *b, u2_t n1, u2_t n2));
  15. i4_t flcmp __P((char *a1, char *b1, u2_t n1, u2_t n2));
  16. i4_t ss1  __P((char **scal, i4_t stsc));
  17. #define ss1(scalpp,stsc)  (( (stsc)%2 ? **(scalpp) : *((*(scalpp))--) >> 4) & 0xf)
  18. /*
  19.   #define ss2(scalpp,stscp) 
  20. (((*(stscp))%2 ? **(scalpp) : (*stscp += 2,*(--(*(scalpp))) >> 4)) & 0xf)
  21. */
  22. u2_t get_length __P((char *val, u2_t type));
  23. char *proval __P((char *aval, u2_t type));
  24. #define get_length(p,t) 
  25. ((t)==T1B?sizeof(i1_t):
  26.   ((t)==T2B?sizeof(i2_t):
  27.     ((t)==TFLOAT || (t)==T4B ? sizeof(i4_t):
  28.       ((t)==TFL  || (t)==TCH ? sizeof(i2_t) + t2bunpack (p): 
  29.       (printf("%s:%d: unexpected type code encountered '%d'n",__FILE__,__LINE__,(t)),
  30.       exit(1),0)))))
  31. #define proval(p,t) ( (char*)(p) + get_length(p,t)) 
  32. #endif