⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 my_global.h

📁 vc连接mysql的封装类
💻 H
📖 第 1 页 / 共 3 页
字号:
#define SOCKET_EAGAIN	WSAEINPROGRESS#define SOCKET_ETIMEDOUT WSAETIMEDOUT#define SOCKET_EWOULDBLOCK WSAEWOULDBLOCK#define SOCKET_EADDRINUSE WSAEADDRINUSE#define SOCKET_ENFILE	ENFILE#define SOCKET_EMFILE	EMFILE#elif defined(OS2)#define socket_errno	sock_errno()#define SOCKET_EINTR	SOCEINTR#define SOCKET_EAGAIN	SOCEINPROGRESS#define SOCKET_ETIMEDOUT SOCKET_EINTR#define SOCKET_EWOULDBLOCK SOCEWOULDBLOCK#define SOCKET_EADDRINUSE SOCEADDRINUSE#define SOCKET_ENFILE	SOCENFILE#define SOCKET_EMFILE	SOCEMFILE#define closesocket(A)	soclose(A)#else /* Unix */#define socket_errno	errno#define closesocket(A)	close(A)#define SOCKET_EINTR	EINTR#define SOCKET_EAGAIN	EAGAIN#define SOCKET_ETIMEDOUT SOCKET_EINTR#define SOCKET_EWOULDBLOCK EWOULDBLOCK#define SOCKET_EADDRINUSE EADDRINUSE#define SOCKET_ENFILE	ENFILE#define SOCKET_EMFILE	EMFILE#endiftypedef uint8		int7;	/* Most effective integer 0 <= x <= 127 */typedef short		int15;	/* Most effective integer 0 <= x <= 32767 */typedef char		*my_string; /* String of characters */typedef unsigned long	size_s; /* Size of strings (In string-funcs) */typedef int		myf;	/* Type of MyFlags in my_funcs */#ifndef byte_definedtypedef char		byte;	/* Smallest addressable unit */#endiftypedef char		my_bool; /* Small bool */#if !defined(bool) && !defined(bool_defined) && (!defined(HAVE_BOOL) || !defined(__cplusplus))typedef char		bool;	/* Ordinary boolean values 0 1 */#endif	/* Macros for converting *constants* to the right type */#define INT8(v)		(int8) (v)#define INT16(v)	(int16) (v)#define INT32(v)	(int32) (v)#define MYF(v)		(myf) (v)#ifndef LL#ifdef HAVE_LONG_LONG#define LL(A) A ## LL#else#define LL(A) A ## L#endif#endif#ifndef ULL#ifdef HAVE_LONG_LONG#define ULL(A) A ## ULL#else#define ULL(A) A ## UL#endif#endif/*  Defines to make it possible to prioritize register assignments. No  longer that important with modern compilers.*/#ifndef USING_X#define reg1 register#define reg2 register#define reg3 register#define reg4 register#define reg5 register#define reg6 register#define reg7 register#define reg8 register#define reg9 register#define reg10 register#define reg11 register#define reg12 register#define reg13 register#define reg14 register#define reg15 register#define reg16 register#endif/*  Sometimes we want to make sure that the variable is not put into  a register in debugging mode so we can see its value in the core*/#ifndef DBUG_OFF#define dbug_volatile volatile#else#define dbug_volatile#endif/* Defines for time function */#define SCALE_SEC	100#define SCALE_USEC	10000#define MY_HOW_OFTEN_TO_ALARM	2	/* How often we want info on screen */#define MY_HOW_OFTEN_TO_WRITE	1000	/* How often we want info on screen */#ifdef HAVE_TIMESPEC_TS_SEC#ifndef set_timespec#define set_timespec(ABSTIME,SEC) \{ \  (ABSTIME).ts_sec=time(0) + (time_t) (SEC); \  (ABSTIME).ts_nsec=0; \}#endif /* !set_timespec */#ifndef set_timespec_nsec#define set_timespec_nsec(ABSTIME,NSEC) \{ \  ulonglong now= my_getsystime() + (NSEC/100); \  (ABSTIME).ts_sec=  (now / ULL(10000000)); \  (ABSTIME).ts_nsec= (now % ULL(10000000) * 100 + ((NSEC) % 100)); \}#endif /* !set_timespec_nsec */#else#ifndef set_timespec#define set_timespec(ABSTIME,SEC) \{\  struct timeval tv;\  gettimeofday(&tv,0);\  (ABSTIME).tv_sec=tv.tv_sec+(time_t) (SEC);\  (ABSTIME).tv_nsec=tv.tv_usec*1000;\}#endif /* !set_timespec */#ifndef set_timespec_nsec#define set_timespec_nsec(ABSTIME,NSEC) \{\  ulonglong now= my_getsystime() + (NSEC/100); \  (ABSTIME).tv_sec=  (now / ULL(10000000)); \  (ABSTIME).tv_nsec= (now % ULL(10000000) * 100 + ((NSEC) % 100));    \}#endif /* !set_timespec_nsec */#endif /* HAVE_TIMESPEC_TS_SEC *//*  Define-funktions for reading and storing in machine independent format  (low byte first)*//* Optimized store functions for Intel x86 */#if defined(__i386__) && !defined(_WIN64)#define sint2korr(A)	(*((int16 *) (A)))#define sint3korr(A)	((int32) ((((uchar) (A)[2]) & 128) ? \				  (((uint32) 255L << 24) | \				   (((uint32) (uchar) (A)[2]) << 16) |\				   (((uint32) (uchar) (A)[1]) << 8) | \				   ((uint32) (uchar) (A)[0])) : \				  (((uint32) (uchar) (A)[2]) << 16) |\				  (((uint32) (uchar) (A)[1]) << 8) | \				  ((uint32) (uchar) (A)[0])))#define sint4korr(A)	(*((long *) (A)))#define uint2korr(A)	(*((uint16 *) (A)))#ifdef HAVE_purify#define uint3korr(A)	(uint32) (((uint32) ((uchar) (A)[0])) +\				  (((uint32) ((uchar) (A)[1])) << 8) +\				  (((uint32) ((uchar) (A)[2])) << 16))#else/*   ATTENTION !       Please, note, uint3korr reads 4 bytes (not 3) !    It means, that you have to provide enough allocated space !*/#define uint3korr(A)	(long) (*((unsigned int *) (A)) & 0xFFFFFF)#endif#define uint4korr(A)	(*((unsigned long *) (A)))#define uint5korr(A)	((ulonglong)(((uint32) ((uchar) (A)[0])) +\				    (((uint32) ((uchar) (A)[1])) << 8) +\				    (((uint32) ((uchar) (A)[2])) << 16) +\				    (((uint32) ((uchar) (A)[3])) << 24)) +\				    (((ulonglong) ((uchar) (A)[4])) << 32))#define uint8korr(A)	(*((ulonglong *) (A)))#define sint8korr(A)	(*((longlong *) (A)))#define int2store(T,A)	*((uint16*) (T))= (uint16) (A)#define int3store(T,A)  do { *(T)=  (uchar) ((A));\                            *(T+1)=(uchar) (((uint) (A) >> 8));\                            *(T+2)=(uchar) (((A) >> 16)); } while (0)#define int4store(T,A)	*((long *) (T))= (long) (A)#define int5store(T,A)  do { *(T)= (uchar)((A));\                             *((T)+1)=(uchar) (((A) >> 8));\                             *((T)+2)=(uchar) (((A) >> 16));\                             *((T)+3)=(uchar) (((A) >> 24)); \                             *((T)+4)=(uchar) (((A) >> 32)); } while(0)#define int8store(T,A)	*((ulonglong *) (T))= (ulonglong) (A)typedef union {  double v;  long m[2];} doubleget_union;#define doubleget(V,M)	\do { doubleget_union _tmp; \     _tmp.m[0] = *((long*)(M)); \     _tmp.m[1] = *(((long*) (M))+1); \     (V) = _tmp.v; } while(0)#define doublestore(T,V) do { *((long *) T) = ((doubleget_union *)&V)->m[0]; \			     *(((long *) T)+1) = ((doubleget_union *)&V)->m[1]; \                         } while (0)#define float4get(V,M) do { *((long *) &(V)) = *((long*) (M)); } while(0)#define float8get(V,M) doubleget((V),(M))#define float4store(V,M) memcpy((byte*) V,(byte*) (&M),sizeof(float))#define floatstore(T,V)  memcpy((byte*)(T), (byte*)(&V),sizeof(float))#define floatget(V,M)    memcpy((byte*) &V,(byte*) (M),sizeof(float))#define float8store(V,M) doublestore((V),(M))#endif /* __i386__ */#ifndef sint2korr/*  We're here if it's not a IA-32 architecture (Win32 and UNIX IA-32 defines  were done before)*/#define sint2korr(A)	(int16) (((int16) ((uchar) (A)[0])) +\				 ((int16) ((int16) (A)[1]) << 8))#define sint3korr(A)	((int32) ((((uchar) (A)[2]) & 128) ? \				  (((uint32) 255L << 24) | \				   (((uint32) (uchar) (A)[2]) << 16) |\				   (((uint32) (uchar) (A)[1]) << 8) | \				   ((uint32) (uchar) (A)[0])) : \				  (((uint32) (uchar) (A)[2]) << 16) |\				  (((uint32) (uchar) (A)[1]) << 8) | \				  ((uint32) (uchar) (A)[0])))#define sint4korr(A)	(int32) (((int32) ((uchar) (A)[0])) +\				(((int32) ((uchar) (A)[1]) << 8)) +\				(((int32) ((uchar) (A)[2]) << 16)) +\				(((int32) ((int16) (A)[3]) << 24)))#define sint8korr(A)	(longlong) uint8korr(A)#define uint2korr(A)	(uint16) (((uint16) ((uchar) (A)[0])) +\				  ((uint16) ((uchar) (A)[1]) << 8))#define uint3korr(A)	(uint32) (((uint32) ((uchar) (A)[0])) +\				  (((uint32) ((uchar) (A)[1])) << 8) +\				  (((uint32) ((uchar) (A)[2])) << 16))#define uint4korr(A)	(uint32) (((uint32) ((uchar) (A)[0])) +\				  (((uint32) ((uchar) (A)[1])) << 8) +\				  (((uint32) ((uchar) (A)[2])) << 16) +\				  (((uint32) ((uchar) (A)[3])) << 24))#define uint5korr(A)	((ulonglong)(((uint32) ((uchar) (A)[0])) +\				    (((uint32) ((uchar) (A)[1])) << 8) +\				    (((uint32) ((uchar) (A)[2])) << 16) +\				    (((uint32) ((uchar) (A)[3])) << 24)) +\				    (((ulonglong) ((uchar) (A)[4])) << 32))#define uint8korr(A)	((ulonglong)(((uint32) ((uchar) (A)[0])) +\				    (((uint32) ((uchar) (A)[1])) << 8) +\				    (((uint32) ((uchar) (A)[2])) << 16) +\				    (((uint32) ((uchar) (A)[3])) << 24)) +\			(((ulonglong) (((uint32) ((uchar) (A)[4])) +\				    (((uint32) ((uchar) (A)[5])) << 8) +\				    (((uint32) ((uchar) (A)[6])) << 16) +\				    (((uint32) ((uchar) (A)[7])) << 24))) <<\				    32))#define int2store(T,A)       do { uint def_temp= (uint) (A) ;\                                  *((uchar*) (T))=  (uchar)(def_temp); \                                   *((uchar*) (T)+1)=(uchar)((def_temp >> 8)); \                             } while(0)#define int3store(T,A)       do { /*lint -save -e734 */\                                  *((uchar*)(T))=(uchar) ((A));\                                  *((uchar*) (T)+1)=(uchar) (((A) >> 8));\                                  *((uchar*)(T)+2)=(uchar) (((A) >> 16)); \                                  /*lint -restore */} while(0)#define int4store(T,A)       do { *((char *)(T))=(char) ((A));\                                  *(((char *)(T))+1)=(char) (((A) >> 8));\                                  *(((char *)(T))+2)=(char) (((A) >> 16));\                                  *(((char *)(T))+3)=(char) (((A) >> 24)); } while(0)#define int5store(T,A)       do { *((char *)(T))=((A));\                                  *(((char *)(T))+1)=(((A) >> 8));\                                  *(((char *)(T))+2)=(((A) >> 16));\                                  *(((char *)(T))+3)=(((A) >> 24)); \                                  *(((char *)(T))+4)=(((A) >> 32)); } while(0)#define int8store(T,A)       do { uint def_temp= (uint) (A), def_temp2= (uint) ((A) >> 32); \                                  int4store((T),def_temp); \                                  int4store((T+4),def_temp2); } while(0)#ifdef WORDS_BIGENDIAN#define float4store(T,A) do { *(T)= ((byte *) &A)[3];\                              *((T)+1)=(char) ((byte *) &A)[2];\                              *((T)+2)=(char) ((byte *) &A)[1];\                              *((T)+3)=(char) ((byte *) &A)[0]; } while(0)#define float4get(V,M)   do { float def_temp;\                              ((byte*) &def_temp)[0]=(M)[3];\                              ((byte*) &def_temp)[1]=(M)[2];\                              ((byte*) &def_temp)[2]=(M)[1];\                              ((byte*) &def_temp)[3]=(M)[0];\                              (V)=def_temp; } while(0)#define float8store(T,V) do { *(T)= ((byte *) &V)[7];\                              *((T)+1)=(char) ((byte *) &V)[6];\                              *((T)+2)=(char) ((byte *) &V)[5];\                              *((T)+3)=(char) ((byte *) &V)[4];\                              *((T)+4)=(char) ((byte *) &V)[3];\                              *((T)+5)=(char) ((byte *) &V)[2];\                              *((T)+6)=(char) ((byte *) &V)[1];\                              *((T)+7)=(char) ((byte *) &V)[0]; } while(0)#define float8get(V,M)   do { double def_temp;\                              ((byte*) &def_temp)[0]=(M)[7];\                              ((byte*) &def_temp)[1]=(M)[6];\                              ((byte*) &def_temp)[2]=(M)[5];\                              ((byte*) &def_temp)[3]=(M)[4];\                              ((byte*) &def_temp)[4]=(M)[3];\                              ((byte*) &def_temp)[5]=(M)[2];\                              ((byte*) &def_temp)[6]=(M)[1];\                              ((byte*) &def_temp)[7]=(M)[0];\                              (V) = def_temp; } while(0)#else#define float4get(V,M)   memcpy_fixed((byte*) &V,(byte*) (M),sizeof(float))#define float4store(V,M) memcpy_fixed((byte*) V,(byte*) (&M),sizeof(float))#if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN)#define doublestore(T,V) do { *(((char*)T)+0)=(char) ((byte *) &V)[4];\                              *(((char*)T)+1)=(char) ((byte *) &V)[5];\                              *(((char*)T)+2)=(char) ((byte *) &V)[6];\                              *(((char*)T)+3)=(char) ((byte *) &V)[7];\                              *(((char*)T)+4)=(char) ((byte *) &V)[0];\                              *(((char*)T)+5)=(char) ((byte *) &V)[1];\                              *(((char*)T)+6)=(char) ((byte *) &V)[2];\                              *(((char*)T)+7)=(char) ((byte *) &V)[3]; }\                         while(0)#define doubleget(V,M)   do { double def_temp;\                              ((byte*) &def_temp)[0]=(M)[4];\                              ((byte*) &def_temp)[1]=(M)[5];\                              ((byte*) &def_temp)[2]=(M)[6];\                              ((byte*) &def_temp)[3]=(M)[7];\                              ((byte*) &def_temp)[4]=(M)[0];\                              ((byte*) &def_temp)[5]=(M)[1];\                              ((byte*) &def_temp)[6]=(M)[2];\                              ((byte*) &def_temp)[7]=(M)[3];\                              (V) = def_temp; } while(0)#endif /* __FLOAT_WORD_ORDER */#define float8get(V,M)   doubleget((V),(M))#define float8store(V,M) doublestore((V),(M))#endif /* WORDS_BIGENDIAN */#endif /* sint2korr *//*  Macro for reading 32-bit integer from network byte order (big-endian)  from unaligned memory location.*/#define int4net(A)        (int32) (((uint32) ((uchar) (A)[3]))        |\				  (((uint32) ((uchar) (A)[2])) << 8)  |\				  (((uint32) ((uchar) (A)[1])) << 16) |\				  (((uint32) ((uchar) (A)[0])) << 24))/*  Define-funktions for reading and storing in machine format from/to  short/long to/from some place in memory V should be a (not  register) variable, M is a pointer to byte*/#ifdef WORDS_BIGENDIAN#define ushortget(V,M)  do { V = (uint16) (((uint16) ((uchar) (M)[1]))+\                                 ((uint16) ((uint16) (M)[0]) << 8)); } while(0)#define shortget(V,M)   do { V = (short) (((short) ((uchar) (M)[1]))+\                                 ((short) ((short) (M)[0]) << 8)); } while(0)#define longget(V,M)    do { int32 def_temp;\                             ((byte*) &def_temp)[0]=(M)[0];\                             ((byte*) &def_temp)[1]=(M)[1];\                             ((byte*) &def_temp)[2]=(M)[2];\                             ((byte*) &def_temp)[3]=(M)[3];\                             (V)=def_temp; } while(0)#define ulongget(V,M)   do { uint32 def_temp;\                            ((byte*) &def_temp)[0]=(M)[0];\                            ((byte*) &def_temp)[1]=(M)[1];\                            ((byte*) &def_temp)[2]=(M)[2];\                            ((byte*) &def_temp)[3]=(M)[3];\                            (V)=def_temp; } while(0)#define shortstore(T,A) do { uint def_temp=(uint) (A) ;\                             *(((char*)T)+1)=(char)(def_temp); \                             *(((char*)T)+0)=(char)(def_temp >> 8); } while(0)#define longstore(T,A)  do { *(((char*)T)+3)=((A));\                             *(((char*)T)+2)=(((A) >> 8));\                             *(((char*)T)+1)=(((A) >> 16));\                             *(((char*)T)+0)=(((A) >> 24)); } while(0)#define floatget(V,M)    memcpy_fixed((byte*) &V,(byte*) (M),sizeof(float))#define floatstore(T,V)  memcpy_fixed((byte*) (T),(byte*)(&V),sizeof(float))#define doubleget(V,M)	 memcpy_fixed((byte*) &V,(byte*) (M),sizeof(double))#define doublestore(T,V) memcpy_fixed((byte*) (T),(byte*) &V,sizeof(double))#define longlongget(V,M) memcpy_fixed((byte*) &V,(byte*) (M),sizeof(ulonglong))#define longlongstore(T,V) memcpy_fixed((byte*) (T),(byte*) &V,sizeof(ulonglong))#else#define ushortget(V,M)	do { V = uint2korr(M); } while(0)#define shortget(V,M)	do { V = sint2korr(M); } while(0)#define longget(V,M)	do { V = sint4korr(M); } while(0)#define ulongget(V,M)   do { V = uint4korr(M); } while(0)#define shortstore(T,V) int2store(T,V)#define longstore(T,V)	int4store(T,V)#ifndef floatstore#define floatstore(T,V)  memcpy_fixed((byte*) (T),(byte*) (&V),sizeof(float))#define floatget(V,M)    memcpy_fixed((byte*) &V, (byte*) (M), sizeof(float))#endif#ifndef doubleget#define doubleget(V,M)	 memcpy_fixed((byte*) &V,(byte*) (M),sizeof(double))#define doublestore(T,V) memcpy_fixed((byte*) (T),(byte*) &V,sizeof(double))#endif /* doubleget */#define longlongget(V,M) memcpy_fixed((byte*) &V,(byte*) (M),sizeof(ulonglong))#define longlongstore(T,V) memcpy_fixed((byte*) (T),(byte*) &V,sizeof(ulonglong))#endif /* WORDS_BIGENDIAN *//* sprintf does not always return the number of bytes :- */#ifdef SPRINTF_RETURNS_INT#define my_sprintf(buff,args) sprintf args#else#ifdef SPRINTF_RETURNS_PTR#define my_sprintf(buff,args) ((int)(sprintf args - buff))#else#define my_sprintf(buff,args) ((ulong) sprintf args, (ulong) strlen(buff))#endif#endif#ifndef THREAD#define thread_safe_increment(V,L) (V)++#define thread_safe_add(V,C,L)     (V)+=(C)#define thread_safe_sub(V,C,L)     (V)-=(C)#define statistic_increment(V,L)   (V)++#define statistic_add(V,C,L)       (V)+=(C)#endif#ifdef HAVE_CHARSET_utf8#define MYSQL_UNIVERSAL_CLIENT_CHARSET "utf8"#else#define MYSQL_UNIVERSAL_CLIENT_CHARSET MYSQL_DEFAULT_CHARSET_NAME#endif#if defined(EMBEDDED_LIBRARY) && !defined(HAVE_EMBEDDED_PRIVILEGE_CONTROL)#define NO_EMBEDDED_ACCESS_CHECKS#endif#endif /* my_global_h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -