I am just very concerned about this because I have mountains of data stored in our database from labview 7.X executables. So if there is a major difference between the structure of data types between one version of labview and another, it could potentially make anything I saved in 7.X totally unusable in some other version. Luckily, it looks like the 7.X data coming out of my database is being converted to labview 8.2 data types properly through the variant to data function. That function must have been modified for 8.X to work properly for both 7.X and 8.X variant types. It's just the saving part that broke in the database connectivity toolkit. But the fact that NI would change the "guts" of an important datatype without telling anyone is scary. So I want to know what changed, why it changed, and what are NI's plans going forward. And the fix you show means I would really be continuing to save data to my database in the old format, that I have to hope NI will keep supporting that old 7.X variant type forever in the variant to data function. It is just very fructrating to be kept in the dark about it.
Thanks for your support. Yes I am saving variants directly into my database in image or OLE object fields.
Of course I can't do a batch conversion to my database data because it is impossible to save 8.X variants to the database right now! Right now you can only save a 7.X variant to a database because you have to use the fix you suggested to flatten it to a 7.1 string!. The 8.X variant cannot be saved to a database.
Unfortunately Ton's fix will not work to fix the database connectivity toolkit because Variant to Flattened String actually does something very different than Flatten to String. I did not realize this at first, and used Flatten to String in my example. But it is necessary to use Variant To Flattened String because it results in a data type descriptor array that is necessary to drive the parsing in the toolkit. So we are back to square 1.
Attached is the accurate representation of what happens in the database connectivity toolkit. You input a cluster of multiple datatypes. When it gets to the variant datatype it grabs the first four bytes as the size. So it is actually a cluster containing a variant that it is handling.
Message Edited by billings11 on 04-23-2007 03:28 PM