CLIENT ACCESS AND THEN THERE ARE CLIENTS supposed to ensure that ordinary clients could access the data, performance issues and the complexity of SQL queries (and XPath and XQuery queries, for that matter) ensure that very few (if any) users actually go right to Query Analyzer for the data they need, and no enterprise applications that we know of use Query Analyzer as a front end to the database. Applications, both rich Windows applications and Web applications, are written using high-level programming languages like C++, Visual Basic, and the .NET family of languages. With all the new features in SQL Server 2005, client libraries such as OLE DB have quite a lot of work to do just to keep up. Although the designers of OLE DB and ADO designed support for user-defined types into the model, the intricacies of supporting them weren t made clear until support for these types was added to popular mainstream databases like SQL Server 2005. OLE DB and ADO are very Rowset/Recordset-centric and have limited support for user-defined types, invoking methods on database types and extending the type system. The next version of these libraries adds support for fetching complex types in a couple of different ways: as a data type Object, or as a nested resultset (Rowset or Recordset). Most of the support in OLE DB and ADO leverages existing objects and methods, and extends them to support the new types. Support for the SQL:1999 information schema Rowsetsis another new feature in data access. The client-side .NET data provider for SQL Server, known as SqlClient, has an easier time of it. Since user-defined types are .NET types, code to process these types might be downloaded to a client from a SQL Server or stored on a network share. It s possible to coerce a column in a DataReader from type Object to type Person and use it directly in a .NET program. Techniques such as network-based code make this work. Handling complex data in place or storing complex types in a .NET DataSet presents a different set of problems. The first book of one of the authors (Bob Beauchemin), Essential ADO.NET (Addison-Wesley, 2002), describes many of these problems and theoretical solutions to them based on the existing .NET libraries. Now that SQL Server supports columns that are classes or columns that are XML, this becomes an interesting area. One limitation of SQL Server clients was that only a single Rowset or Recordset could be active at a time in the default cursorless mode of SQL Server data access. Different APIs solved this problem in different ways, and we ll talk about the repercussions of this in Chapter 11. SQL Server 2005 breaks through the one-active-rowset barrier by allowing the user APIs to multiplex active results on a single connection. This empowering feature is known as MARS (multiple active resultsets).

Note: If you are looking for good and high quality web space to host and run your application check Lunarwebhost Java Web Hosting services

Bookmark the permalink.

Comments are closed.