There are extensive changes in Stonefield Query version 3.3. See the What's New in This Version topic in the Stonefield Query help file (SFQUERY.CHM) for details on the new features. The rest of this section discusses what's new in the Stonefield Query SDK.
New Features
- The data dictionary now supports versioning. This is useful if tables and fields were added to or removed from the database between versions and you have some users using an older version and some using a newer version but they're all using the latest version of your customized Stonefield Query. To prevent users from selecting tables and fields that may not exist in their version of the database, you can specify the version number for each table and field that doesn't exist in all versions.
- Stonefield Query now supports scripting in VB.Net and C#.
- Like us, you may have a blog or news feed describing changes to your application. However, most users don't read blogs. So, Stonefield Query now includes a built-in news reader. If you fill in the URL for News Feeds configuration setting with the URL for an RSS feed, the news reader is available to your users.
- The Create Help Files function in the Configuration Utility now runs Stonefield Query and automates the generation of all customized screen shots, so there's no need to do that manually any more. That can save you a considerable amount of time.
- You can now refresh a single database rather than all database if you wish by selecting the Refresh Database function from the Objects or shortcut menus.
- Runtime licenses are now called "Report Viewer" licenses, which is a clearer name about what the license is for.
- The unlimited Report Viewer license file is now named UNLIMITED.LIC rather than SFQUERY.LIC to avoid mixing it up with your own internal license file. Also, UNLIMITED.LIC is now automatically included in the Inno Setup script generated by the Generate Setup function.
- If your project folder contains a Sample Reports subdirectory, that folder and its contents are now automatically included in the Inno Setup script generated by the Generate Setup function.
- Information in the new Support Contact Information configuration item is automatically used in the Technical Support topic in the custom help file.
- The new Table to Test configuration setting allows you to specify which table Stonefield Query tests when the user clicks the Test button in the Manage Databases dialog.
- The new DataEngine.GetDataSourceDescription script allows you to specify a descriptive name for a database accessed through a DSN. This script is only called if the User Can Manage Data Sources configuration setting is True because it's called from the Manage Databases and Setup dialogs after successfully testing a DSN.
- The new AddToFavorites method of the DataEngine object allows you to dynamically add tables and fields to the "favorites" table.
- The new Number of Days for Demo Version configuration setting allows you to create a shorter demo period than the default 30 days if you wish.
- The new AddToFields method of the DataEngine object adds fields to the specified SQL statement.
- The new ReportEngine.SetReportProperties script allows you to change the properties of a report when the user selects it.
- If you add code to the new DataEngine.HandleSQLError script, that script is called when a SQL error occurs in a report, allowing you to trap the error and handle it yourself.
- If the new URL for Technical Support Site configuration setting is filled in, the Help menu in Stonefield Query includes a new "Support Center on the Web" item that navigates the user's browser to that URL.
- The Options.Settings and Setup.Settings scripts have several new capabilities. First, they now support the same set of elements (although "page," "restart," "left," and "top" are ignored in Setup.Settings) so you can have both of those scripts call a common script that returns the XML if you want the same set of options for both, which is likely. You can also specify which page in these dialogs the setting should appear on and specify that changes to the setting in the Options dialog should cause an application restart. Finally, you can specify that the setting should be saved in Data.INI rather than the Registry, meaning the setting is global for all users.
- The Expression Builder now displays real table and field names in the Configuration Utility rather than descriptive names.
- The default setting for the User Can Edit SQL Statement configuration setting for new projects is now True.
- Importing a data dictionary now supports complex joins.
- Changing the name of a script no longer deletes the existing code for that script but only overwrites the parameters statement for the code if you select an event script that accepts different parameters.
- Most runtime files are now placed in the Stonefield Query program folder to prevent conflicts with other applications using different versions of the same files.
- You can now dynamically add filter conditions to a report you run from another application.
- Adding tables and fields programmatically in the DataEngine.GetCustomMetaData script is easier now; you no longer have to release the table object before adding fields to ensure the fields are added properly.
- The code window opened when you right-click the code for a script and choose Zoom now supports find capability. Right-click in the code window and choose Find from the shortcut menu. Also, when you choose Build Expression from the shortcut menu, the Stonefield Query Expression Builder is now used.
- The new ExclusionConditions collection provides access to the exclusion conditions for a report.
- If the Support Maintenance Reminder configuration setting is False, the Stonefield Query About dialog no longer displays the maintenance expiry date, serial number, or registration number and the License Manager no longer displays the maintenance expiry date.
- A new Test button in the database properties page of the Configuration Utility allows you to test that the connection settings are correct.
- The Application object always has TimeZoneDesc and TimeZoneOffset properties. There is no longer a need to call the GetTimeZoneInfo function to create those properties, although no harm is done if you do call that function.
Bug Fixes
- The Find and Go To Page dialogs of the Preview window are now localizable.
- A bug that causes configuration settings from the previous project to be written to the current project when you edit a configuration setting and then select the new project from the Open button drop-down list was fixed.
- SQProxy now uses a parameters file rather than command-line parameters when calling Stonefield Query to avoid a problem with the command line being too long.
- The View Table and View Field Contents functions can now handle field names that start with a digit.
- Renaming a data group or user role now displays in it the proper alphabetical order.
- You cannot edit the name of a database if it's "freetables" (automatically assigned when you use Visual FoxPro free tables).
- You can no longer enter translations longer than 254 characters in the Resource Editor.
- A bug that prevented enumerated fields that contain illegal characters (such as a dash) from working properly was fixed.
- A bug in the RunScript function that caused an error if an error occurred in the script it calls was fixed.
- A bug that made Stonefield Query case-sensitive for fields specified in the output expression of a field was fixed.
- The Workstation Installer (WSSetup.EXE) now prompts you to run "the application" rather than "Stonefield Query" at the end of the installation.
- System views are no longer added to the data dictionary if you turn on the Include views option in the Add Database dialog.
- A bug that prevented exclusion filters from working when the Stonefield Query performs joins configuration setting is turned on was fixed.