Changes between Version 24 and Version 25 of FDORfc34
- Timestamp:
- 04/16/09 12:43:43 (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FDORfc34
v24 v25 63 63 == Requirements == 64 64 65 The following FDO capability interface will be updated to expose a capability method that indicates if indexed access is supported by the provider. The default implementation of this property will be 'false'. Providers will not be required to implement this method. 66 67 === Interface ICommandCapabilities === 68 69 {{{ 70 /// \brief 71 /// The FdoICommandCapabilities interface declares the feature 72 /// provider's level of support for Commands. 73 class FdoICommandCapabilities : public FdoIDisposable 74 { 75 public: 76 ... 77 ... 78 ... 79 /// \brief 80 /// Determines if the provider supports accessing reader properties by index. 81 /// The default access method is by name. 82 /// 83 /// \return 84 /// Returns true if the provider supports ExecuteFeatureReader. 85 /// 86 FDO_API virtual bool SupportsReaderPropertyAccessByIndex() 87 }; 88 }}} 89 90 The following FDO reader interfaces will be updated to allow for indexed access. The default implementation of these properties will throw a Not Implemented exception. Providers will not be required to implement this method. Clients are required to use the above !SupportsReaderPropertyAccessByIndex method to determine if they can use these newly added index operations. 65 The following FDO reader interfaces will be updated to allow for indexed access. Providers will be required to implement these method. 91 66 92 67 === Interface IReader === … … 117 92 /// Returns true if the value is null. 118 93 /// 119 FDO_API virtual FdoBoolean IsNull(FdoInt32 index) ;94 FDO_API virtual FdoBoolean IsNull(FdoInt32 index) = 0; 120 95 121 96 /// \brief … … 130 105 /// Returns the Boolean value. 131 106 /// 132 FDO_API virtual FdoBoolean GetBoolean(FdoInt32 index) ;107 FDO_API virtual FdoBoolean GetBoolean(FdoInt32 index) = 0; 133 108 134 109 /// \brief … … 143 118 /// Returns the byte value. 144 119 /// 145 FDO_API virtual FdoByte GetByte(FdoInt32 index) ;120 FDO_API virtual FdoByte GetByte(FdoInt32 index) = 0; 146 121 147 122 /// \brief … … 169 144 /// Returns the double floating point value 170 145 /// 171 FDO_API virtual FdoDouble GetDouble(FdoInt32 index) ;146 FDO_API virtual FdoDouble GetDouble(FdoInt32 index) = 0; 172 147 173 148 /// \brief … … 182 157 /// Returns the FdoInt16 value. 183 158 /// 184 FDO_API virtual FdoInt16 GetInt16(FdoInt32 index) ;159 FDO_API virtual FdoInt16 GetInt16(FdoInt32 index) = 0; 185 160 186 161 /// \brief … … 195 170 /// Returns the FdoInt32 value 196 171 /// 197 FDO_API virtual FdoInt32 GetInt32(FdoInt32 index) ;172 FDO_API virtual FdoInt32 GetInt32(FdoInt32 index) = 0; 198 173 199 174 /// \brief … … 208 183 /// Returns the FdoInt64 value. 209 184 /// 210 FDO_API virtual FdoInt64 GetInt64(FdoInt32 index) ;185 FDO_API virtual FdoInt64 GetInt64(FdoInt32 index) = 0; 211 186 212 187 /// \brief … … 221 196 /// Returns the single value 222 197 /// 223 FDO_API virtual FdoFloat GetSingle(FdoInt32 index) ;198 FDO_API virtual FdoFloat GetSingle(FdoInt32 index) = 0; 224 199 225 200 /// \brief … … 234 209 /// Returns the string value 235 210 /// 236 FDO_API virtual FdoString* GetString(FdoInt32 index) ;211 FDO_API virtual FdoString* GetString(FdoInt32 index) = 0; 237 212 238 213 /// \brief … … 248 223 /// Returns the reference to LOBValue 249 224 /// 250 FDO_API virtual FdoLOBValue* GetLOB(FdoInt32 index) ;225 FDO_API virtual FdoLOBValue* GetLOB(FdoInt32 index) = 0; 251 226 252 227 /// \brief … … 264 239 /// Returns a reference to a LOB stream reader 265 240 /// 266 FDO_API virtual FdoIStreamReader* GetLOBStreamReader(FdoInt32 index) ;241 FDO_API virtual FdoIStreamReader* GetLOBStreamReader(FdoInt32 index) = 0; 267 242 268 243 /// \brief … … 277 252 /// Returns the byte array in FGF format. 278 253 /// 279 FDO_API virtual FdoByteArray* GetGeometry(FdoInt32 index) ;254 FDO_API virtual FdoByteArray* GetGeometry(FdoInt32 index) = 0; 280 255 281 256 /// \brief … … 290 265 /// Returns the raster object. 291 266 /// 292 FDO_API virtual FdoIRaster* GetRaster(FdoInt32 index) ;267 FDO_API virtual FdoIRaster* GetRaster(FdoInt32 index) = 0; 293 268 }; 294 269 }}} … … 315 290 /// Returns the number of columns. 316 291 /// 317 FDO_API virtual FdoInt32 GetPropertyCount() ;292 FDO_API virtual FdoInt32 GetPropertyCount() = 0; 318 293 319 294 /// \brief … … 326 301 /// Returns the property name 327 302 /// 328 FDO_API virtual FdoString* GetPropertyName(FdoInt32 index) ;303 FDO_API virtual FdoString* GetPropertyName(FdoInt32 index) = 0; 329 304 330 305 /// \brief … … 337 312 /// Returns the type of the property. 338 313 /// 339 FDO_API virtual FdoPropertyType GetPropertyType(FdoInt32 index) ;314 FDO_API virtual FdoPropertyType GetPropertyType(FdoInt32 index) = 0; 340 315 341 316 /// \brief … … 348 323 /// Returns the data type of the property. 349 324 /// 350 FDO_API virtual FdoDataType GetDataType(FdoInt32 index) 325 FDO_API virtual FdoDataType GetDataType(FdoInt32 index) = 0; 351 326 352 327 /// \brief … … 368 343 /// Returns a pointer to the byte array in FGF format. 369 344 /// 370 FDO_API virtual const FdoByte * GetGeometry(FdoInt32 index, FdoInt32* count) ;345 FDO_API virtual const FdoByte * GetGeometry(FdoInt32 index, FdoInt32* count) = 0; 371 346 372 347 /// \brief … … 381 356 /// Returns the byte array in FGF format. 382 357 /// 383 FDO_API virtual FdoByteArray* GetGeometry(FdoInt32 index) ;358 FDO_API virtual FdoByteArray* GetGeometry(FdoInt32 index) = 0; 384 359 385 360 /// \brief … … 394 369 /// Returns the nested feature reader 395 370 /// 396 FDO_API virtual FdoIFeatureReader* GetFeatureObject(FdoInt32 index) ;371 FDO_API virtual FdoIFeatureReader* GetFeatureObject(FdoInt32 index) = 0; 397 372 }; 398 373 }}} … … 422 397 /// Returns the type of the property. 423 398 /// 424 FDO_API virtual FdoDataType GetDataType(FdoInt32 index) ;399 FDO_API virtual FdoDataType GetDataType(FdoInt32 index) = 0; 425 400 426 401 /// \brief … … 436 411 /// Returns the FDO property type. 437 412 /// 438 FDO_API virtual FdoPropertyType GetPropertyType(FdoInt32 index) ;413 FDO_API virtual FdoPropertyType GetPropertyType(FdoInt32 index) = 0; 439 414 }; 440 415 }}} … … 465 440 /// Returns true if the value is null. 466 441 /// 467 FDO_API virtual FdoBoolean IsNull(FdoInt32 index) ;442 FDO_API virtual FdoBoolean IsNull(FdoInt32 index) = 0; 468 443 469 444 /// \brief … … 476 451 /// Returns the type of the column. 477 452 /// 478 FDO_API virtual FdoDataType GetColumnType(FdoInt32 index) ;453 FDO_API virtual FdoDataType GetColumnType(FdoInt32 index) = 0; 479 454 480 455 /// \brief … … 489 464 /// Returns the FDO property type of the column. 490 465 /// 491 FDO_API virtual FdoPropertyType GetPropertyType(FdoInt32 index) ;466 FDO_API virtual FdoPropertyType GetPropertyType(FdoInt32 index) = 0; 492 467 493 468 /// \brief … … 502 477 /// Returns the Boolean value 503 478 /// 504 FDO_API virtual FdoBoolean GetBoolean(FdoInt32 index) ;479 FDO_API virtual FdoBoolean GetBoolean(FdoInt32 index) = 0; 505 480 506 481 /// \brief … … 515 490 /// Returns the byte value. 516 491 /// 517 FDO_API virtual FdoByte GetByte(FdoInt32 index) ;492 FDO_API virtual FdoByte GetByte(FdoInt32 index) = 0; 518 493 519 494 /// \brief … … 528 503 /// Returns the date and time value. 529 504 /// 530 FDO_API virtual FdoDateTime GetDateTime(FdoInt32 index) ;505 FDO_API virtual FdoDateTime GetDateTime(FdoInt32 index) = 0; 531 506 532 507 /// \brief … … 541 516 /// Returns the double value. 542 517 /// 543 FDO_API virtual FdoDouble GetDouble(FdoInt32 index) ;518 FDO_API virtual FdoDouble GetDouble(FdoInt32 index) = 0; 544 519 545 520 /// \brief … … 554 529 /// Returns the FdoInt16 value. 555 530 /// 556 FDO_API virtual FdoInt16 GetInt16(FdoInt32 index) ;531 FDO_API virtual FdoInt16 GetInt16(FdoInt32 index) = 0; 557 532 558 533 /// \brief … … 567 542 /// Returns the FdoInt32 value. 568 543 /// 569 FDO_API virtual FdoInt32 GetInt32(FdoInt32 index) ;544 FDO_API virtual FdoInt32 GetInt32(FdoInt32 index) = 0; 570 545 571 546 /// \brief … … 580 555 /// Returns the FdoInt64 value. 581 556 /// 582 FDO_API virtual FdoInt64 GetInt64(FdoInt32 index) ;557 FDO_API virtual FdoInt64 GetInt64(FdoInt32 index) = 0; 583 558 584 559 /// \brief … … 593 568 /// Returns the single value 594 569 /// 595 FDO_API virtual FdoFloat GetSingle(FdoInt32 index) ;570 FDO_API virtual FdoFloat GetSingle(FdoInt32 index) = 0; 596 571 597 572 /// \brief … … 606 581 /// Returns the string value. 607 582 /// 608 FDO_API virtual FdoString* GetString(FdoInt32 index) ;583 FDO_API virtual FdoString* GetString(FdoInt32 index) = 0; 609 584 610 585 /// \brief … … 619 594 /// Returns the reference to LOBValue 620 595 /// 621 FDO_API virtual FdoLOBValue* GetLOB(FdoInt32 index) ;596 FDO_API virtual FdoLOBValue* GetLOB(FdoInt32 index) = 0; 622 597 623 598 /// \brief … … 634 609 /// Returns a reference to a LOB stream reader 635 610 /// 636 FDO_API virtual FdoIStreamReader* GetLOBStreamReader(FdoInt32 index) ;611 FDO_API virtual FdoIStreamReader* GetLOBStreamReader(FdoInt32 index) = 0; 637 612 638 613 /// \brief … … 647 622 /// Returns the FGF byte array value. 648 623 /// 649 FDO_API virtual FdoByteArray* GetGeometry(FdoInt32 index) ;624 FDO_API virtual FdoByteArray* GetGeometry(FdoInt32 index) = 0; 650 625 }; 651 626 }}} … … 657 632 == Provider Implementation == 658 633 659 Providers will not be required to implement the above functionality, although they will be strongly encouraged to do so. These methods will be added to the base FDO API package with a default implementation that throws an exception stating that the property is not supported. 660 661 For example: 662 663 {{{ 664 FdoDataType FdoISQLDataReader::GetColumnType(FdoInt32 index) 665 { 666 throw FdoException::Create(FdoException::NLSGetMessage(FDO_NLSID(FDO_3_NOTIMPLEMENTED))); 667 } 668 }}} 669 670 671 It is expected that resourcing will be supplied to modify the SQLite, SDF and SHP providers. Resourcing required for modifying the other Open Source providers will be determined at a latter date. Of primary interest would be the implementation of these enhancements in the SQL Server Spatial Provider. 634 Providers will be required to implement the above functionality. 635 636 It is expected that resourcing will be supplied to modify all the existing FDO OpenSource providers. 672 637 673 638 == Test Plan ==