GENERATED: JUL 11,2017 - 12:39AM
Mixed Browse Extensions SQL Joins Demo [V10.17.05.0157]

Previous Page
This application illustrates a mixed browse extension, SQL Join set of browses consisting of HandyMarkerBrowses (Parent, Child1 and Child3) and ExplorerBrowse (Child2).

This app was developed as a test application to study ABC Browse Class reset behaviour by tracing with HandySQLTrace. It was used in revisions to CHT Browse Classes and templates made late May 2012.

The purpose of those revisions was to eliminate double and triple SQL requests sent from the ABC Browse classes whenever the browse was reset by an order change or a filter change.

It is the nature of templates of one type to generate code together in a given embed point (say priority 9500) in the order that the templates are populated on the window. This rule of thumb does not hold when populating two templates with different types into the same embed priority point. One template type will generate as a group, then the other, regardless of the order in which they're populated.

When creating a JOIN SET with mixed browse extensions such as in this application, CHT had to devise a way to get the templates to populate in a consistent order that matched the developer's design for browse filling order. A JOINed set of browses must always fill in the order PARENT, CHILD1, CHILD2, CHILD3.

If the templates generate into the same embed point in the wrong order (due to template types having been mixed together) the firing order of browses can become jumbled and events can collide such that browses fill in the wrong order and SQL "Chatter' results.

Our latest implementation of HandyMarkerBrowse and ExplorerBrowse extensions has overcome this native template-generation-order behaviour (where order matters) by generating into named, hidden, embed points based on each template's position in the JOIN SET heirarchy, regardless of the template type, allowing mixed template types in a given JOIN SET.

This application in conjunction with HNDSQLTRACE.EXE can be used to illustrate just how much CHT's latest Browse Extension templates can improve the speed and efficiency of your SQL browses.

Cheers...
Gus M. Creces
The Clarion Handy Tools Page



Count Global Template Name Qty Global Template Description
(0001) AACHTControlPanel(HNDTools) 1 CHT AACHTControlPanel - Global Control Panel.
(0002) ApplicationImagesEx(HNDTools) 1 CHT ApplicationImagesEx - Application Styling System
(0003) HNDCMPControlPanel(HNDTools) 1 CHT HNDCMPControlPanel - Interface to the CHT Compile Manager.
(0004) HandyVersionResource(HNDTools) 1 CHT HandyVersionResource - Version Resource/Build Number Information To EXE
(0005) INIFile(HNDTools) 1 CHT INIFile - .INI FIle and Registry extension classes - HNDIni - globally to your application.
(0006) VblFileNames(HNDTools) 1 CHT VblFileNames - Incorporate variable file names and defaults into your app from the dictionary.
(6) Global Templates Found

1 - Procedure Template Type: Source
RegisterODBC ()
Count Local Template Name Qty Local Template Description
(0007) EmbedObject(HNDTools) 2 CHT EmbedObject - An Instance Of:
(0008) ProcedureImagesEx(HNDTools) 1 CHT ProcedureImagesEx - Application Styling System
(2) Local Templates Found In RegisterODBC

2 - Procedure Template Type: Window
HMBandEBWithMultipleQueryControls ()
Count Local Template Name Qty Local Template Description
(0009) BrowseBox(ABC) 4 Browse on Products ()
(0010) BrowseUpdateButtons(ABC) 1 Update a Record from Browse Box on Customers
(0011) EmbedWindowFunctions(HNDTools) 1 CHT EmbedWindowFunctions - An Instance Of:
(0012) ExplorerBrowse(HNDTools) 1 CHT ExplorerBrowse - Explorer-like ABC browse with multi-column sorts on table: Order_Details
(0013) HandyMarkerBrowse(HNDTools) 3 CHT HandyMarkerBrowse - Explorer-like ABC browse with record marking on table: Products
(0014) HandyMarkerBrowseLocatorControlEx(HNDTools) 1 CHT HandyMarkerBrowseLocatorControlEX - Attach an EXTENDED Locator Control to your Clarion Handy Tools HandyMarkerBrowse.(10)
(0015) HandyMarkerBrowseQueryBuilderControl(HNDTools) 1 CHT HandyMarkerBrowseQueryBuilderControl - Attach a CHT Query Builder control to your Clarion Handy Tools HandyMarkerBrowse procedure.(9)
(0016) HandyThreadLimiter(HNDTools) 1 CHT HandyThreadLimiter - Limit threaded procedures to one instance.
(0017) HandyToolBarGradient(HNDTools) 1 CHT HandyToolBarGradient - Place gradient properties as a backdrop on the window toolbar.
(0018) HandyWindowGradient(HNDTools) 1 CHT HandyWindowGradient - Place gradient properties as a backdrop on the window.
(0019) ProcedureImagesEx(HNDTools) 1 CHT ProcedureImagesEx - Application Styling System
(0020) QueryParsingFilterControl(HNDTools) 1 CHT QueryParsingFilterControl - HMrkBrwP An Instance Of: HNDBrwFilter
(12) Local Templates Found In HMBandEBWithMultipleQueryControls

3 - Procedure Template Type: Frame
MainEntryPoint ()
Count Local Template Name Qty Local Template Description
(0021) EmbedDiskFunctions(HNDTools) 1 CHT EmbedDiskFunctions - Disk Functions Classes - An Instance Of:
(0022) EmbedRegistryFunctions(HNDTools) 1 CHT EmbedRegistryFunctions - An Instance Of:
(0023) EmbedWindowFunctions(HNDTools) 1 CHT EmbedWindowFunctions - An Instance Of:
(0024) HandyHelpFileFetch(HNDTools) 3 CHT HandyHelpFileFetch - Build A Help File Request To Your Website.(4)
(0025) HandyHelpWhatsNew(HNDTools) 1 CHT HandyHelpWhatsNew - Build A What's New Request To Your Website.(8)
(0026) ProcedureImagesEx(HNDTools) 1 CHT ProcedureImagesEx - Application Styling System
(6) Local Templates Found In MainEntryPoint

4 - Procedure Template Type: Window
CompanyUpdateForm ()
Count Local Template Name Qty Local Template Description
(0027) CancelButton(ABC) 1 Cancel the Current Operation
(0028) EmbedWindowFunctions(HNDTools) 1 CHT EmbedWindowFunctions - An Instance Of:
(0029) FormVCRControls(ABC) 1 Allow Form to be driven by Toolbar VCR Controls
(0030) ProcedureImagesEx(HNDTools) 1 CHT ProcedureImagesEx - Application Styling System
(0031) RecordValidation(ABC) 1 Validate a record against the dictionary
(0032) SaveButton(ABC) 1 Update Customers record on disk
(6) Local Templates Found In CompanyUpdateForm

5 - Procedure Template Type: Splash
JumpStartSplashCHTBlue ()
Count Local Template Name Qty Local Template Description
(0033) AppBuildDateTimeStamp(HNDTools) 1 CHT AppBuildDateTimeStamp - An application build date/time stamp.
(0034) AppBuildNumberStamp(HNDTools) 1 CHT AppBuildNumberStamp - An application build number or version stamp.
(0035) AppCopyRightStamp(HNDTools) 1 CHT AppCopyRightStamp - An application copyright stamp.
(0036) HandyTellMeControl(HNDTools) 1 CHT HandyTellMeControl - Text box control to provide a message or help text.
(0037) ProcedureImagesEx(HNDTools) 1 CHT ProcedureImagesEx - Application Styling System
(5) Local Templates Found In JumpStartSplashCHTBlue

Copyright © 1996-2017 - CHT Version: [21C.00.00]
Gus M. Creces and The Clarion Handy Tools Page.
All Rights Reserved Worldwide

chtlogo001.gif Templates In Application: HNDMIXEDBROWSESQLJOINTEST.APP