Platform support for ODBC 3.8 has been available under Windows 7 (and Windows Server 2008 R2) for a bit more than a year now.  In the world of ODBC (as with many other industry standards), we see a bit of a chicken and egg effect with the roll out of updates to the standard:  Applications need to be enhanced to take advantage of the new capabilities, but the ODBC drivers also need to implement the new features before applications can use them.  Fortunately, one of the hallmarks of ODBC is its strong emphasis on compatibility, so these things don’t need to happen at the same time.  Updated drivers that make the new features available can be used by older applications and applications with enhancements for the new features can still work with older drivers.  The end user doesn’t see all the benefits until both the application and the driver are at the same level but they get the full functionality of the lower level regardless.

From the outset, it’s been expected that the upcoming “Denali” release of the SQL Server Native Client would be first out of the gate with database support for the new features.  This was confirmed last week by Jimmy Wu in his post on the SQLNCli team blog.  For ODBC application developers where SQL Server is your data source, this means you can now start to take advantage of these new features:

  • With Streamed Output Parameters, you will be able to retrieve extremely large data objects (such as the new varbinary(max), varchar(max), and nvarchar(max) objects introduced with SQL Server 2008 R2) without the ODBC driver having to allocate enough buffer space to contain the entire object at once.
  • ODBC C-Type Extensibility will allow you to get data objects from a database to your application even if the data types don’t exist in the ODBC specification.  Prior to ODBC 3.8, the ODBC driver would have to convert the data into a supported ODBC format (like SQL_C_BINARY) and your application would have to reconstruct it.
  • Asynchronous Connection Operations and improved connection pool management mean that your application can be designed for larger numbers of users with less-frequent access requirements (such as with cloud-based services and large-scale corporate applications).

Simba is committed to ODBC 3.8 and will be adding support for it in a future release of SimbaEngine ODBC SDK, bringing these advanced features to the full range of Windows, UNIX and Linux platforms that we support.  We’re interested in hearing from client application developers if you’re starting down the road to take advantage of these features.  We are also interested to hear from developers using database driver SDKs who feel that these features can be passed through elegantly to their data source in ways that will enhance functionality and performance.