home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / w3_apps / winsql.arj / SQL.H < prev    next >
Text File  |  1991-12-06  |  8KB  |  240 lines

  1. /*
  2.  * SQL.H - Header file for Quasar SQL Application Programming Interface
  3.  *
  4.  * LANGUAGE      : Microsoft C6.0
  5.  * MODEL         : N/A
  6.  * ENVIRONMENT   : Microsoft Windows 3.0
  7.  *
  8.  * Developed by:
  9.  *   Philip Roll
  10.  *   Ming-Li Wang
  11.  *
  12.  * (C) Copyright 1991
  13.  * Stellar Industries
  14.  * 3335 S. Falcon Ridge Road
  15.  * Diamond Bar  CA 91765
  16.  * (714) 861-7885
  17.  *
  18.  */
  19.  
  20. /*
  21.  *
  22.  * Data classes:
  23.  *
  24.  */
  25.  
  26. #define mSqlDataClassAPPROXIMATE        0
  27. #define mSqlDataClassBINARY             1
  28. #define mSqlDataClassCHAR               2
  29. #define mSqlDataClassEXACT              3
  30. #define mSqlDataClassINVALID            4
  31.  
  32. /*
  33.  *
  34.  * Data types:
  35.  *
  36.  */
  37.  
  38. #define mSqlDataTypeBINARY              0
  39. #define mSqlDataTypeCHAR                1
  40. #define mSqlDataTypeDECIMAL             2
  41. #define mSqlDataTypeDOUBLE              3
  42. #define mSqlDataTypeFLOAT               4
  43. #define mSqlDataTypeINTEGER             5
  44. #define mSqlDataTypeNUMERIC             6
  45. #define mSqlDataTypeREAL                7
  46. #define mSqlDataTypeSMALLINT            8
  47. #define mSqlDataTypeVARCHAR             9
  48. #define mSqlDataTypeINVALID             10
  49.  
  50. /*
  51.  *
  52.  * Error codes:
  53.  *
  54.  */
  55.  
  56. #define mSqlErrorAmbiguousColumn        1
  57. #define mSqlErrorBadEnvironment         2
  58. #define mSqlErrorBinaryNotAllowed       3
  59. #define mSqlErrorCannotActivateFile     4
  60. #define mSqlErrorCannotCloseFile        5
  61. #define mSqlErrorCannotCloseLog         6
  62. #define mSqlErrorCannotCreateDataFile   7
  63. #define mSqlErrorCannotCreateDumpFile   8
  64. #define mSqlErrorCannotCreateFile       9
  65. #define mSqlErrorCannotCreateKeyFile    10
  66. #define mSqlErrorCannotCreateLog        11
  67. #define mSqlErrorCannotDeleteFile       12
  68. #define mSqlErrorCannotDropTable        13
  69. #define mSqlErrorCannotOpenDataFile     14
  70. #define mSqlErrorCannotOpenFile         15
  71. #define mSqlErrorCannotOpenKeyFile      16
  72. #define mSqlErrorCannotOpenLog          17
  73. #define mSqlErrorCannotRemoveTable      18
  74. #define mSqlErrorCharNotAllowed         19
  75. #define mSqlErrorCheckpointDetected     20
  76. #define mSqlErrorDataFileCorrupted      21
  77. #define mSqlErrorDatabaseCorrupt        22
  78. #define mSqlErrorDbaNotAvailable        23
  79. #define mSqlErrorDivideByZero           24
  80. #define mSqlErrorDuplicateColumn        25
  81. #define mSqlErrorDuplicateRecord        26
  82. #define mSqlErrorExistingDataFile       27
  83. #define mSqlErrorExistingKeyFile        28
  84. #define mSqlErrorFileReadFailed         29
  85. #define mSqlErrorFileSeekFailed         30
  86. #define mSqlErrorFileWriteFailed        31
  87. #define mSqlErrorGlobalLockFailed       32
  88. #define mSqlErrorGlobalUnlockFailed     33
  89. #define mSqlErrorImportParseError       34
  90. #define mSqlErrorIncompatibleTypes      35
  91. #define mSqlErrorIndexExists            36
  92. #define mSqlErrorIndexUndoFailed        37
  93. #define mSqlErrorInitializationFailed   38
  94. #define mSqlErrorInsufficientBuffer     39
  95. #define mSqlErrorInternalError          40
  96. #define mSqlErrorInvalidColumnSpec      41
  97. #define mSqlErrorInvalidColumnType      42
  98. #define mSqlErrorInvalidCursor          43
  99. #define mSqlErrorInvalidData            44
  100. #define mSqlErrorInvalidEscapeChar      45
  101. #define mSqlErrorInvalidPattern         46
  102. #define mSqlErrorInvalidTableID         47
  103. #define mSqlErrorInvalidUser            48
  104. #define mSqlErrorKeyFileCorrupted       49
  105. #define mSqlErrorListSizesUnequal       50
  106. #define mSqlErrorMultipleSelects        51
  107. #define mSqlErrorNoColumnExists         52
  108. #define mSqlErrorNoIndexExists          53
  109. #define mSqlErrorNoOldRecord            54
  110. #define mSqlErrorNoTableExists          55
  111. #define mSqlErrorNoUserExists           56
  112. #define mSqlErrorNodeSizeTooSmall       57
  113. #define mSqlErrorNotAggregate           58
  114. #define mSqlErrorNotGroupingColumn      59
  115. #define mSqlErrorNotInGroupedTable      60
  116. #define mSqlErrorNotSingleRecord        61
  117. #define mSqlErrorNullInNotNullCol       62
  118. #define mSqlErrorNullNotAllowed         63
  119. #define mSqlErrorParserSyntaxError      64
  120. #define mSqlErrorParserStackOverflow    65
  121. #define mSqlErrorPrecisionConflict      66
  122. #define mSqlErrorResultTableExists      67
  123. #define mSqlErrorScaleOverflow          68
  124. #define mSqlErrorSecurityViolation      69
  125. #define mSqlErrorSetFunctionsNested     70
  126. #define mSqlErrorStarNotAllowed         71
  127. #define mSqlErrorSubqueryNotOneColumn   72
  128. #define mSqlErrorTableConflict          73
  129. #define mSqlErrorTableExists            74
  130. #define mSqlErrorTooManyColumnNames     75
  131. #define mSqlErrorTooManyTablesOpen      76
  132. #define mSqlErrorTrialSizeExceeded      77
  133. #define mSqlErrorVariableHeaderMark     78
  134. #define mSqlErrorVariableHeaderSize     79
  135. #define mSqlErrorVariableHeaderWrong    80
  136. #define mSqlErrorVariableHeaderZero     81
  137. #define mSqlErrorWrongVersion           82
  138.  
  139. /*
  140.  *
  141.  * Record structure formats:
  142.  *
  143.  */
  144.  
  145. #define mSqlFlagFormatPadded            0x0000
  146. #define mSqlFlagFormatString            0x0001
  147. #define mSqlFlagFormatStructure         0x0002
  148.  
  149. /*
  150.  *
  151.  * Auto commit options:
  152.  *
  153.  */
  154.  
  155. #define mSqlFlagAutoCommitOnLogout      0x0010
  156.  
  157. /*
  158.  *
  159.  * Maximum number of significant characters in named entity:
  160.  *
  161.  */
  162.  
  163. #define mSqlMaximumNameLength           32
  164.  
  165. /*
  166.  *
  167.  * Global types:
  168.  *
  169.  */
  170.  
  171. typedef struct tagSQLCOLUMN {
  172.   BOOL            bRightJustified;
  173.   char            szColumnHeading[mSqlMaximumNameLength + 1];
  174.   unsigned        nColumnSequenceNumber;
  175.   unsigned        nDataClass;
  176.   unsigned        nDataType;
  177.   unsigned        nFieldWidth;
  178.   unsigned        nPrecision;
  179.   unsigned        nScale;
  180. }               SQLCOLUMN;
  181. typedef SQLCOLUMN *PSQLCOLUMN;
  182. typedef SQLCOLUMN far *LPSQLCOLUMN;
  183.  
  184. typedef struct tagSQLCONTROL {
  185.   char            szErrorDetail[65];
  186.   char            szErrorMessage[257];
  187.   unsigned        nHiLiteLength;
  188.   unsigned        nHiLiteOffset;
  189.   unsigned        nPadding;
  190.   unsigned        nRecordBufferSize;
  191.   unsigned        nResultCode;
  192.   unsigned long   lRecordPosition;
  193.   unsigned long   lReserved0;
  194.   unsigned long   lReserved1;
  195.   unsigned long   lReserved2;
  196.   unsigned long   lReserved3;
  197.   unsigned long   lReserved4;
  198.   WORD            wFlags;
  199. }               SQLCONTROL;
  200. typedef SQLCONTROL *PSQLCONTROL;
  201. typedef SQLCONTROL far *LPSQLCONTROL;
  202.  
  203. typedef struct tagSQLSTATUS {
  204.   unsigned long   lNumberOfRecordDeletes;
  205.   unsigned long   lNumberOfRecordInserts;
  206.   unsigned long   lNumberOfRecordSelects;
  207.   unsigned long   lNumberOfRecordUpdates;
  208.   unsigned long   lTimeElapsed;
  209. }               SQLSTATUS;
  210. typedef SQLSTATUS *PSQLSTATUS;
  211. typedef SQLSTATUS far *LPSQLSTATUS;
  212.  
  213. typedef struct tagSQLTABLE {
  214.   unsigned        nNumberOfColumns;
  215.   unsigned        nRecordSize;
  216.   unsigned long   lNumberOfRecords;
  217. }               SQLTABLE;
  218. typedef SQLTABLE *PSQLTABLE;
  219. typedef SQLTABLE far *LPSQLTABLE;
  220.  
  221. /*
  222.  *
  223.  * Function prototypes:
  224.  *
  225.  */
  226.  
  227. BOOL FAR PASCAL SqlCursorClose(HANDLE, HANDLE, LPSQLCONTROL);
  228. HANDLE FAR PASCAL SqlCursorOpen(HANDLE, LPSQLCONTROL);
  229. BOOL FAR PASCAL SqlDescribeColumn(HANDLE, HANDLE, LPSQLCONTROL, unsigned, LPSQLCOLUMN);
  230. BOOL FAR PASCAL SqlDescribeTable(HANDLE, HANDLE, LPSQLCONTROL, LPSQLTABLE);
  231. BOOL FAR PASCAL SqlExecute(HANDLE, HANDLE, LPSQLCONTROL, LPSTR);
  232. BOOL FAR PASCAL SqlFetchFirst(HANDLE, HANDLE, LPSQLCONTROL, LPSTR);
  233. BOOL FAR PASCAL SqlFetchLast(HANDLE, HANDLE, LPSQLCONTROL, LPSTR);
  234. BOOL FAR PASCAL SqlFetchNext(HANDLE, HANDLE, LPSQLCONTROL, LPSTR);
  235. BOOL FAR PASCAL SqlFetchPositioned(HANDLE, HANDLE, LPSQLCONTROL, unsigned long, LPSTR);
  236. BOOL FAR PASCAL SqlFetchPrevious(HANDLE, HANDLE, LPSQLCONTROL, LPSTR);
  237. BOOL FAR PASCAL SqlGetStatus(HANDLE, HANDLE, LPSQLCONTROL, LPSQLSTATUS);
  238. HANDLE FAR PASCAL SqlLogin(LPSQLCONTROL, LPSTR, LPSTR);
  239. BOOL FAR PASCAL SqlLogout(HANDLE, LPSQLCONTROL);
  240.