psqlodbc.h
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:4k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /* File:            psqlodbc.h
  2.  *
  3.  * Description:     This file contains defines and declarations that are related to
  4.  *                  the entire driver.
  5.  *
  6.  * Comments:        See "notice.txt" for copyright and license information.
  7.  *
  8.  */
  9. #ifndef __PSQLODBC_H__
  10. #define __PSQLODBC_H__
  11. #ifdef HAVE_CONFIG_H
  12. #include "config.h"
  13. #endif
  14. #include <stdio.h> /* for FILE* pointers: see GLOBAL_VALUES */
  15. #ifndef WIN32
  16. #define Int4 long int
  17. #define UInt4 unsigned int
  18. #define Int2 short
  19. #define UInt2 unsigned short
  20. typedef float SFLOAT;
  21. typedef double SDOUBLE;
  22. #else
  23. #define Int4 int
  24. #define UInt4 unsigned int
  25. #define Int2 short
  26. #define UInt2 unsigned short
  27. #endif
  28. typedef UInt4 Oid;
  29. /* Driver stuff */
  30. #define ODBCVER 0x0200
  31. #define DRIVER_ODBC_VER "02.00"
  32. #define DRIVERNAME             "PostgreSQL ODBC"
  33. #define DBMS_NAME              "PostgreSQL"
  34. #define DBMS_VERSION           "06.40.0006 PostgreSQL 6.4"
  35. #define POSTGRESDRIVERVERSION  "06.40.0006"
  36. #ifdef WIN32
  37. #define DRIVER_FILE_NAME "PSQLODBC.DLL"
  38. #else
  39. #define DRIVER_FILE_NAME "libpsqlodbc.so"
  40. #endif
  41. /* Limits */
  42. #define MAX_QUERY_SIZE (BLCKSZ*2)
  43. #define MAX_MESSAGE_LEN MAX_QUERY_SIZE
  44. #define MAX_CONNECT_STRING 4096
  45. #define ERROR_MSG_LENGTH 4096
  46. #define FETCH_MAX 100 /* default number of rows to cache for declare/fetch */
  47. #define TUPLE_MALLOC_INC 100
  48. #define SOCK_BUFFER_SIZE 4096 /* default socket buffer size */
  49. #define MAX_CONNECTIONS 128 /* conns per environment (arbitrary)  */
  50. #define MAX_FIELDS 512
  51. #define BYTELEN 8
  52. #define VARHDRSZ sizeof(Int4)
  53. #define MAX_TABLE_LEN 32
  54. #define MAX_COLUMN_LEN 32
  55. #define MAX_CURSOR_LEN 32
  56. /* Registry length limits */
  57. #define LARGE_REGISTRY_LEN 4096 /* used for special cases */
  58. #define MEDIUM_REGISTRY_LEN 256 /* normal size for user,database,etc. */
  59. #define SMALL_REGISTRY_LEN 10 /* for 1/0 settings */
  60. /* These prefixes denote system tables */
  61. #define POSTGRES_SYS_PREFIX "pg_"
  62. #define KEYS_TABLE "dd_fkey"
  63. /* Info limits */
  64. #define MAX_INFO_STRING 128
  65. #define MAX_KEYPARTS 20
  66. #define MAX_KEYLEN 512 // max key of the form "date+outlet+invoice"
  67. #define MAX_STATEMENT_LEN MAX_MESSAGE_LEN
  68. #define PG62 "6.2" /* "Protocol" key setting to force Postgres 6.2 */
  69. #define PG63 "6.3" /* "Protocol" key setting to force postgres 6.3 */
  70. #define PG64 "6.4"
  71. typedef struct ConnectionClass_ ConnectionClass;
  72. typedef struct StatementClass_ StatementClass;
  73. typedef struct QResultClass_ QResultClass;
  74. typedef struct SocketClass_ SocketClass;
  75. typedef struct BindInfoClass_ BindInfoClass;
  76. typedef struct ParameterInfoClass_ ParameterInfoClass;
  77. typedef struct ColumnInfoClass_ ColumnInfoClass;
  78. typedef struct TupleListClass_ TupleListClass;
  79. typedef struct EnvironmentClass_ EnvironmentClass;
  80. typedef struct TupleNode_ TupleNode;
  81. typedef struct TupleField_ TupleField;
  82. typedef struct col_info COL_INFO;
  83. typedef struct lo_arg LO_ARG;
  84. typedef struct GlobalValues_
  85. {
  86. int fetch_max;
  87. int socket_buffersize;
  88. int unknown_sizes;
  89. int max_varchar_size;
  90. int max_longvarchar_size;
  91. char debug;
  92. char commlog;
  93. char disable_optimizer;
  94. char ksqo;
  95. char unique_index;
  96. char readonly;
  97. char use_declarefetch;
  98. char text_as_longvarchar;
  99. char unknowns_as_longvarchar;
  100. char bools_as_char;
  101. char lie;
  102. char parse;
  103. char cancel_as_freestmt;
  104. char extra_systable_prefixes[MEDIUM_REGISTRY_LEN];
  105. char conn_settings[LARGE_REGISTRY_LEN];
  106. char protocol[SMALL_REGISTRY_LEN];
  107. FILE* mylogFP;
  108. FILE* qlogFP;
  109. } GLOBAL_VALUES;
  110. typedef struct StatementOptions_ {
  111. int maxRows;
  112. int maxLength;
  113. int rowset_size;
  114. int keyset_size;
  115. int cursor_type;
  116. int scroll_concurrency;
  117. int retrieve_data;
  118. int bind_size;         /* size of each structure if using Row Binding */
  119. int use_bookmarks;
  120. } StatementOptions;
  121. /* Used to pass extra query info to send_query */
  122. typedef struct QueryInfo_ {
  123. int row_size;
  124. QResultClass *result_in;
  125. char *cursor;
  126. } QueryInfo;
  127. #define PG_TYPE_LO -999 /* hack until permanent type available */
  128. #define PG_TYPE_LO_NAME "lo"
  129. #define OID_ATTNUM -2 /* the attnum in pg_index of the oid */
  130. /* sizes */
  131. #define TEXT_FIELD_SIZE 8190 /* size of text fields (not including null term) */
  132. #define NAME_FIELD_SIZE 32 /* size of name fields */
  133. #define MAX_VARCHAR_SIZE 254 /* maximum size of a varchar (not including null term) */
  134. #include "misc.h"
  135. #endif