ClarionLive for April 20 2012
This ClarionLive webinar featured Mike Hanson, JP Gutzatz and Bruce Johnson.Â
Word of the day
Word of the day by Greb Bailey: IMM. This attribute results in a number of events being triggered immediately. On a window this means you get immediate Move, Size,Restoer, Maximizze and Iconize events. Once the action has completed you get Moved, Sized, Restored, Maximized and Iconized events.Â
IMM's affect on controls depends on the type of control.Â
Mike pointed out that certain embeds are dependent on the IMM attribute being present.Â
On list boxes you need IMM in order to tweak scroll bars for the proper appearance of page loaded browses. If you have a file-loaded list box and the IMM attribute you won't get the default scroll bar behavior.Â
These days it's hard to come up with a good argument for not having IMM on every window since a few more events aren't likely to slow down the display.Â
WebGem
From Mark Riffey, the Open DB Diff MS SQL database synchronization tool.Â
Coming up
John is planning a webinar on the Ultimate SQL Class for querying, connecting etc. John is accepting feature requests.Â
Arnold will also be presenting on his app running on Thin@.
Conversions
Once you make a change in the dictionary and save those changes, if you try to browse a file (e.g. a TPS file) Clarion will offer to convert the file for you. That's fine for a test environment. Graham Dawson pointed out that the in-place conversion will not handle dimensioned fields.Â
Clarion can also write a conversion program for you - this is the Using Data File Option. But be aware that sometimes you have to try repeatedly to exercise this option in the dictionary editor. You may need to try the menu option several times before the conversion window pops up.Â
The program that is created for you will have two source file definitions (before and after). Be aware that the targetName variable is not set as the Name() attribute on the destination definition so you'll need to fix that.Â
Check the values set for the name attributes - they're probably not what you want.Â
You can also create conversions between two table definitions, even if one of them is in another dictionary. If you're changing drivers you will have to use this option.Â
Be aware that the AssignRecord routine will not include any fields that are different between the two definitions so you'll have to add those yourself.Â
As Bruce pointed out, the built in conversion program is not a good option for SQL where you would instead want to write SQL statements to modify the schema and/or update data.Â
FM3
Bruce gave a demonstration of FM3, which grew out of CapeSoft's need to give their own customers control over their data upgrades.Â
Among other things, FM3 lets you downgrade to a previous version (as customers may wish to do if you ship a particularly buggy update).Â
FM3 is not ideal for data massaging - you'll probably want to write a conversion program if you need to make data changes as well as (or instead of) file layout changes.Â
Decimals can be tricky. If you make a change to a decimal you should increase the left-side number by two to change the length of the record. Bruce pointed out that if the record length exceeds 4k Btrieve will not warn you of any record changes. 1
In FM3 all definitions are stored in the upg.tps file. There is also a UPGView utility for this file.Â
FM3 will accumulate changes. If your table is on version 3 and has upgraded to a program that uses version 6, it will convert directly from 3 to 6.Â
Data Management Centre
JP gave a short presentation on his DMC product. Courtesy of Brahn Partridge, the DMC viewer will now run inside the IDE. You can also launch DMC outside of the IDE as before.
DMC provides a wide range of file manipulation options including transferring data, cloning structures, porting to SQL, comparing structures, and more. There are some sophisticated data manipulation features available during conversion.Â
DMC lets you define profiles for operations, and you can then provide those profiles to customers. As long as they have the DMC runtime engine they can run those profiles on their systems. Profiles can be combined into projects.Â
More SQL goodness to come in future webinars!