Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:22:06

0001 // $Id: TSQLDatabaseMetaData.cxx,v 1.1.1.1 2004/02/18 20:58:02 dave Exp $
0002 //*-- Author : Valeriy Onuchin 14/02/2000 
0003 //
0004 
0005 /////////////////////////////////////////////////////////////////////
0006 //
0007 // Comprehensive information about the database as a whole. 
0008 //
0009 // Many of the methods here return lists of information in the form 
0010 // of TSQLResultSet objects. You can use the normal TSQLResultSet 
0011 // methods  such as TSQLResultSet::GetString() and 
0012 // TSQLResultSet::GetInt() to retrieve the data from 
0013 // these  TSQLResultSet s. If a given form of metadata is not available, 
0014 // these methods should throw an TSQLException. 
0015 //
0016 // Some of these methods take arguments that are string patterns. 
0017 // These arguments all have names such as fooPattern. Within a 
0018 // pattern string, "%" means match any substring of 0 or more 
0019 // characters, and "_" means match any one character. Only metadata 
0020 // entries matching the search pattern are returned. If a search 
0021 // pattern argument is set to a null ref, that argument's criteria 
0022 // will be dropped from the search. 
0023 //
0024 //
0025 /////////////////////////////////////////////////////////////////////
0026 // 
0027 //       Constants:
0028 //
0029 //___________________________________________________________________
0030 // kProcedureResultUnknown
0031 //
0032 //      A possible value for column PROCEDURE_TYPE in the 
0033 //      TSQLResultSet  object returned by the method GetProcedures(). 
0034 //
0035 //      Indicates that it is not known whether the procedure 
0036 //      returns a result.
0037 //
0038 //___________________________________________________________________
0039 // kProcedureNoResult
0040 //
0041 //      A possible value for column PROCEDURE_TYPE in the 
0042 //      TSQLResultSet object returned by the  method GetProcedures(). 
0043 //
0044 //      Indicates that the procedure does not return a result.
0045 //
0046 //___________________________________________________________________
0047 // kProcedureReturnsResult
0048 //
0049 //      A possible value for column PROCEDURE_TYPE in the 
0050 //      TSQLResultSet object returned by the  method GetProcedures(). 
0051 //
0052 //      Indicates that the procedure returns a result.
0053 //
0054 //___________________________________________________________________
0055 // kProcedureColumnUnknown
0056 //
0057 //     Indicates that type of the column is unknown. A possible value 
0058 //     for the column  COLUMN_TYPE in the TSQLResultSet returned by 
0059 //     the method GetProcedureColumns().
0060 //
0061 //___________________________________________________________________
0062 //  kProcedureColumnIn
0063 //
0064 //    Indicates that the column stores IN parameters. A possible 
0065 //    value for the column  COLUMN_TYPE in the TSLQResultSet returned 
0066 //    by the method GetProcedureColumns().
0067 //
0068 //___________________________________________________________________
0069 // kProcedureColumnInOut
0070 //
0071 //     Indicates that the column stores INOUT parameters. A possible 
0072 //    value for the column COLUMN_TYPE in the TSQLResultSet returned 
0073 //    by the method GetProcedureColumns().
0074 //
0075 //___________________________________________________________________
0076 // kProcedureColumnOut
0077 //
0078 //      Indicates that the column stores OUT parameters. A possible 
0079 //      value for the column kCOLUMN_TYPE in the TSQLResultSet 
0080 //      returned by the method GetProcedureColumns().
0081 //
0082 //___________________________________________________________________
0083 // kProcedureColumnReturn
0084 //
0085 //      Indicates that the column stores return values. A possible 
0086 //      value for the column COLUMN_TYPE in the TSQLResultSet returned 
0087 //      by the method GetProcedureColumns().
0088 //
0089 //___________________________________________________________________
0090 // kProcedureColumnResult
0091 //
0092 //      Indicates that the column stores results. A possible value 
0093 //      for the column kCOLUMN_TYPE in the TSQLResultSet returned 
0094 //      by the  method GetProcedureColumns().
0095 //
0096 //___________________________________________________________________
0097 // kProcedureNoNulls
0098 //
0099 //      Indicates that NULL values are not allowed. A possible value 
0100 //      for the column NULLABLE in the TSQLResultSet returned by the 
0101 //      method GetProcedureColumns().
0102 //
0103 //___________________________________________________________________
0104 // kProcedureNullable
0105 //
0106 //      Indicates that NULL values are allowed. A possible value for 
0107 //      the column NULLABLE in  the TSQLResultSet returned by 
0108 //      the method  GetProcedureColumns().
0109 //
0110 //___________________________________________________________________
0111 // kProcedureNullableUnknown
0112 //
0113 //      Indicates that whether NULL values are allowed is unknown.
0114 //      A possible value for the column NULLABLE in the TSQLResultSet 
0115 //      returned by the method GetProcedureColumns().
0116 //
0117 //___________________________________________________________________
0118 // kColumnNoNulls
0119 //
0120 //      Indicates that the column might not allow NULL values. 
0121 //      A possible value for the column NULLABLE in the TSQLResultSet 
0122 //      returned by the method GetColumns().
0123 //
0124 //___________________________________________________________________
0125 // kColumnNullable
0126 //
0127 //      Indicates that the column definitely allows NULL values. 
0128 //      A possible value for the column NULLABLE in the TSQLResultSet 
0129 //      returned by the method GetColumns().
0130 //
0131 //___________________________________________________________________
0132 //  kColumnNullableUnknown
0133 //
0134 //      Indicates that the nullability of columns is unknown. 
0135 //      A possible value for the column NULLABLE in the TSQLResultSet 
0136 //      returned by the method GetColumns().
0137 //
0138 //___________________________________________________________________
0139 // kBestRowTemporary
0140 //
0141 //      Indicates that the scope of the best row identifier is very 
0142 //      temporary, lasting only  while the row is being used. 
0143 //      A possible  value for the column SCOPE in the TSQLResultSet 
0144 //      object returned  by the method GetBestRowIdentifier().
0145 //
0146 //___________________________________________________________________
0147 // kBestRowTransaction
0148 //
0149 //      Indicates that the scope of the best row identifier is the 
0150 //      remainder of the current  transaction. A possible value for 
0151 //      the column SCOPE in the TSQLResultSet object returned by
0152 //      the method GetBestRowIdentifier().
0153 //
0154 //___________________________________________________________________
0155 // kBestRowSession
0156 //
0157 //      Indicates that the scope of the best row identifier is the 
0158 //      remainder of the current  session. A possible value for the 
0159 //      column SCOPE in the TSQLResultSet object returned by 
0160 //      the method GetBestRowIdentifier().
0161 //
0162 //___________________________________________________________________
0163 // kBestRowUnknown
0164 //
0165 //      Indicates that the best row identifier may or may not be 
0166 //      a pseudo column. A possible value for the column 
0167 //      PSEUDO_COLUMN in the TSQLResultSet object returned by 
0168 //      the method GetBestRowIdentifier().
0169 //
0170 //___________________________________________________________________
0171 // kBestRowNotPseudo
0172 //
0173 //      Indicates that the best row identifier is NOT a pseudo 
0174 //      column. A possible value for the column PSEUDO_COLUMN in 
0175 //      the TSQLResultSet object returned by the method 
0176 //      GetBestRowIdentifier().
0177 //
0178 //___________________________________________________________________
0179 // kBestRowPseudo
0180 //
0181 //      Indicates that the best row identifier is a pseudo column. 
0182 //      A possible value for the column PSEUDO_COLUMN in the 
0183 //      TSQLResultSet object returned by the method  
0184 //      GetBestRowIdentifier().
0185 //
0186 //___________________________________________________________________
0187 // kVersionColumnUnknown
0188 //
0189 //      Indicates that this version column may or may not be a pseudo 
0190 //      column. A possible value for the column PSEUDO_COLUMN in 
0191 //      the TSQLResultSet object returned by the method 
0192 //      GetVersionColumns().
0193 //
0194 //___________________________________________________________________
0195 // kVersionColumnNotPseudo
0196 //
0197 //      Indicates that this version column is NOT a pseudo column. 
0198 //      A possible value for the column PSEUDO_COLUMN in the 
0199 //      TSQLResultSet object returned by the method GetVersionColumns().
0200 //
0201 //___________________________________________________________________
0202 // kVersionColumnPseudo
0203 //
0204 //      Indicates that this version column is a pseudo column. 
0205 //      A possible value for the column PSEUDO_COLUMN in the 
0206 //      TSQLResultSet object returned by the method GetVersionColumns().
0207 //
0208 //___________________________________________________________________
0209 // kImportedKeyCascade
0210 //
0211 //      A possible value for the columns UPDATE_RULE and 
0212 //    DELETE_RULE in the TSQLResultSet objects returned by the 
0213 //    methods GetImportedKeys(), GetExportedKeys(), 
0214 //    and GetCrossReference(). 
0215 //
0216 //      For the column UPDATE_RULE, it indicates that when the 
0217 //      primary key is updated, the foreign key (imported key) 
0218 //      is changed to agree with it. 
0219 //
0220 //      For the column DELETE_RULE, it indicates that when the 
0221 //      primary key is deleted, rows that imported that key 
0222 //      are deleted.
0223 //
0224 //___________________________________________________________________
0225 // kImportedKeyRestrict
0226 //
0227 //      A possible value for the columns UPDATE_RULE and DELETE_RULE 
0228 //    in the TSQLResultSet objects returned by the methods 
0229 //    GetImportedKeys(), GetExportedKeys(), and GetCrossReference(). 
0230 //
0231 //      For the column UPDATE_RULE, it indicates that a primary 
0232 //    key may not be updated if it has been imported by another 
0233 //    table as a foreign key. 
0234 //
0235 //      For the column DELETE_RULE, it indicates that a primary 
0236 //      key may not be deleted if it has been imported by another
0237 //     table as a foreign key.
0238 //
0239 //___________________________________________________________________
0240 // kImportedKeySetNull
0241 //
0242 //      A possible value for the columns UPDATE_RULE and DELETE_RULE 
0243 //    in the TSQLResultSet objects returned by the methods 
0244 //    GetImportedKeys(), GetExportedKeys(), and GetCrossReference(). 
0245 //
0246 //      For the columns UPDATE_RULE and DELETE_RULE, it indicates 
0247 //      that when the primary key is  updated or deleted, the 
0248 //      foreign key (imported key) is changed to NULL.
0249 //
0250 //___________________________________________________________________
0251 // kImportedKeyNoAction
0252 //
0253 //      A possible value for the columns UPDATE_RULE and DELETE_RULE 
0254 //      in the TSQLResultSet objects returned by the methods 
0255 //      GetImportedKeys(), GetExportedKeys(), and GetCrossReference(). 
0256 //
0257 //      For the columns UPDATE_RULE and DELETE_RULE, it indicates 
0258 //      that if the primary key has been imported, it cannot be 
0259 //     updated or deleted.
0260 //
0261 //___________________________________________________________________
0262 // kImportedKeySetDefault
0263 //
0264 //      A possible value for the columns UPDATE_RULE and DELETE_RULE
0265 //      in the TSQLResultSet objects returned by the methods 
0266 //      GetImportedKeys(), GetExportedKeys(), and GetCrossReference(). 
0267 //
0268 //      For the columns UPDATE_RULE and DELETE_RULE, it indicates 
0269 //      that if the primary key is updated or deleted, 
0270 //      the foreign key (imported key) is set to the default value.
0271 //
0272 //___________________________________________________________________
0273 // kImportedKeyInitiallyDeferred
0274 //
0275 //      A possible value for the column DEFERRABILITY in 
0276 //     the TSQLResultSet objects returned by the methods 
0277 //     GetImportedKeys(), GetExportedKeys(), and GetCrossReference(). 
0278 //
0279 //      Indicates deferrability. See SQL-92 for a definition.
0280 //
0281 //___________________________________________________________________
0282 // kImportedKeyInitiallyImmediate
0283 //
0284 //      A possible value for the column DEFERRABILITY in 
0285 //    the TSQLResultSet objects returned by the methods 
0286 //    GetImportedKeys(), GetExportedKeys(), and GetCrossReference(). 
0287 //
0288 //      Indicates deferrability. See SQL-92 for a definition.
0289 //
0290 //___________________________________________________________________
0291 // kImportedKeyNotDeferrable
0292 //
0293 //      A possible value for the column DEFERRABILITY in 
0294 //      the TSQLResultSet objects returned by the methods 
0295 //      GetImportedKeys(), GetExportedKeys(), and GetCrossReference(). 
0296 //
0297 //      Indicates deferrability. See SQL-92 for a definition.
0298 //
0299 //___________________________________________________________________
0300 // kTypeNoNulls
0301 //
0302 //      A possible value for column NULLABLE in the TSQLResultSet 
0303 //      object returned by the method GetTypeInfo(). 
0304 //
0305 //      Indicates that a NULL value is NOT allowed for 
0306 //      this data type.
0307 //
0308 //___________________________________________________________________
0309 // kTypeNullable
0310 //
0311 //      A possible value for column NULLABLE in the TSQLResultSet 
0312 //      object returned by the method GetTypeInfo(). 
0313 //
0314 //      Indicates that a NULL value is allowed for this data type.
0315 //
0316 //___________________________________________________________________
0317 // kTypeNullableUnknown
0318 //
0319 //      A possible value for column NULLABLE in the TSQLResultSet 
0320 //      object returned by the method GetTypeInfo(). 
0321 //
0322 //      Indicates that it is not known whether a NULL value 
0323 //      is allowed for this data type.
0324 //
0325 //___________________________________________________________________
0326 // kTypePredNone
0327 //
0328 //      A possible value for column SEARCHABLE in the TSQLResultSet 
0329 //      object returned by the method GetTypeInfo(). 
0330 //
0331 //      Indicates that WHERE search clauses are not supported 
0332 //      for this type.
0333 //
0334 //___________________________________________________________________
0335 // kTypePredChar
0336 //
0337 //      A possible value for column SEARCHABLE in the TSQLResultSet 
0338 //      object returned by the method GetTypeInfo(). 
0339 //
0340 //      Indicates that the only WHERE search clause that can be 
0341 //      based on this type is WHERE . . .LIKE.
0342 //
0343 //___________________________________________________________________
0344 // kTypePredBasic
0345 //
0346 //      A possible value for column SEARCHABLE in the TSQLResultSet 
0347 //    object returned by the method GetTypeInfo(). 
0348 //
0349 //      Indicates that one can base all WHERE search clauses 
0350 //      except WHERE . . .LIKE on this data type.
0351 //
0352 //___________________________________________________________________
0353 // kTypeSearchable
0354 //
0355 //      A possible value for column SEARCHABLE in the TSQLResultSet 
0356 //      object returned by the method GetTypeInfo(). 
0357 //
0358 //      Indicates that all WHERE search clauses can be based 
0359 //      on this type.
0360 //
0361 //___________________________________________________________________
0362 // kTableIndexStatistic
0363 //
0364 //      A possible value for column TYPE in the TSQLResultSet 
0365 //    object returned by the method GetIndexInfo(). 
0366 //
0367 //      Indicates that this column contains table statistics 
0368 //      that are returned in conjunction with a table's index 
0369 //      descriptions.
0370 //
0371 //___________________________________________________________________
0372 // kTableIndexClustered
0373 //
0374 //      A possible value for column TYPE in the TSQLResultSet object 
0375 //      returned by the method GetIndexInfo(). 
0376 //
0377 //      Indicates that this table index is a clustered index.
0378 //
0379 //___________________________________________________________________
0380 // kTableIndexHashed
0381 //
0382 //      A possible value for column TYPE in the TSQLResultSet object 
0383 //      returned by the method GetIndexInfo(). 
0384 //
0385 //      Indicates that this table index is a hashed index.
0386 //
0387 //___________________________________________________________________
0388 // kTableIndexOther
0389 //
0390 //      A possible value for column TYPE in the TSQLResultSet object 
0391 //      returned by the method GetIndexInfo(). 
0392 //
0393 //      Indicates that this table index is not a clustered index, 
0394 //      a hashed index, or table statistics; it is something 
0395 //      other than these.
0396 //
0397 //  See also:
0398 //       TSQLTypes TSQLConnection
0399 //
0400 /////////////////////////////////////////////////////////////////////
0401 
0402 #include <RDBC/TSQLDatabaseMetaData.h>
0403 #include <RDBC/TSQLResultSet.h>
0404 
0405 ClassImpQ(TSQLDatabaseMetaData)
0406             
0407 /////////////////////////////////////////////////////////////////////
0408 //___________________________________________________________________
0409 TSQLDatabaseMetaData::TSQLDatabaseMetaData(TSQLConnection* connection,
0410                                            void* imp):TSQL(imp)
0411 {
0412    // constructor
0413    
0414    fConnection = connection;
0415 }
0416 
0417 //___________________________________________________________________
0418 TSQLDatabaseMetaData::~TSQLDatabaseMetaData()
0419 {
0420    // destructor will be called when fConnection is deleted 
0421 
0422    fConnection = 0;
0423    fImp = 0;
0424 }