Build #9
Visual Studio 2010 Beta 2
Fixed issues in the installer if Visual Studio 2010 Beta 2 was installed on the machine it would prevent installation of the Visual Studio 2008 designer. One of the Visual Studio 2008 interfaces is being promoted to .Net 4 automatically in beta 2 for some reason. We have worked around the issue for now. We also had to work around other issues in Beta 2 for DDEX providers that were not present in Beta 1.
Visual Studio 2010 Beta 2 support should be considered, um... Beta. We have it installing, and have done some initial tests. VS 2010 B2 just came out, if you are using it then you hopefully understand that it is not a final release of Visual Studio.
Same bugs still in VS 2010
We already have verified many of the exact same bugs in VS 2008 are still in VS 2010 (like the checkbox for updating an auto increment value after insert still only works for Microsoft providers, but doesn't gray out for third parties). We will start opening tickets with Microsoft on these for VS 2010 (like we did for VS 2008), but I don't hold out a lot of hope of Microsoft fixing these issues since they have been around since the Visual Studio since 2005 days.
Customer Experience Improvement Program
There is an optional download for Professional subscribers to get a CEIP (Customer Experience Improvement Program) enabled version of VistaDB. This is a separate download, and at install time you have to check the box for the Customer Experience application to be installed. If you install the CEIP version of the engine and enable the tray app logs about your Data Builder, Visual Studio Designer, License Manager, etc will be sent to VistaDB. This does not include anything in the actual runtime engine. There is a special VistaDB.Logged.4.dll that you have to reference in your application if you want logs from the engine. Shutting down the tray app will also prevent any logs from being transmitted to us.
This is something we are experimenting with to provide better support, trapping errors on your machine rather than you having to send us a sample, and to understand better the customer usage of features and components.
I have a separate (much longer and verbose) blog post about the CEIP program, how we are building it, why, and more. Look for that in a few days.
New Sample – RSS Aggregator
Added the RSS Aggregator sample project. This project loads feeds from RSS sources and stores them in a VistaDB database. All database activity is done through the ADO.NET provider factories. The tray app also alerts the user when new activity has occurred.
Some of the other samples have continued to have work done on them and have been updated.
Contains Fixes
The Contains SQL parse had a few bugs in the code from an experimental test that were not intended to go live. This was causing some words with keywords (and, or, not) within the word to run part of code for phrase matching that is not currently in the production code. This has been corrected. Yes, we do still intend to bring phrase matches and word combinations to FTS, they are under development.
Cast and Convert changes
Added more logic to the automatic conversion of chars or nchars to double and decimal to handle special cases from SQL Server.
You do things like this in SQL Server:
select cast(' ' as float);
select cast('' as float);
select cast('2.0077E1 ' as float);
But the following does not work:
select cast(' ' as decimal);
select cast('' as decimal);
select cast('2.0077E1 ' as decimal);
You can do those conversions for float, but not for decimal. We have changed these cases to match SQL Server rules.
Pack and Repair Operations
Packing or repairing a database from ADO.NET functions only work if the database was not originally opened in DDA. If the database is open in DDA then the DDA operations must be used instead. A new exception has been added to these routines when an attempt is made in these circumstances.
Clustered Index and Alter Index
Clustered indexes are not support as we do not store rows on disk the same as SQL Server. We do not reorder the tables on disk for the index to be a "natural" order on disk. Clustering an index in SQL Server reorders the entire table and new insertions are sorted based upon that index as well (which can lead to fragmentation of the index, and the pages on disk as each new insert can cascade into multiple updates to disk). We do not support this concept, but we were parsing the clustered index create syntax from the sql parser. This will now generate an exception as it is not supported.
Alter index is another command that the sql parser was allowing, even though it did not perform as expected. You cannot alter an index, or rebuild an index (packing automatically rebuilds indexes). The only way to rename an index is to drop it and build a new one. Attempting the syntax will now throw an exception rather than silently failing.