Dynalib Library
Description
This library is intended for dynamic creation of Clarion data structures (GROUP/QUEUE/FILE/VIEW). The created data structures are similar to standard respective structures in functionality as well as in structure declared statically in source code. They may be handled by all standard Clarion statements.
Features
- The basic methods of work with fields of structures in such libraries are organized on the basis of a call of standard operator WHAT() and, thus, inherit all weak sides of the given operator which were described above. In the given library all basic methods of work with fields use original algorithm that has allowed not only to avoid the above described mistakes and lacks but also to realize the additional functionalities inaccessible both standard methods and similar libraries. In particular - simple and transparent work with references on standard types.
- Using of library is more simple and intuitively clear.
- It is possible to create of new structure or separated fields using of a usual string (a constant or a variable) with the standard description
- Ability to load description of structure and its creation from an external textl file or from a string which filled, for example, in the TEXT-control. For more details - see the description of method LoadDeclare().
- Ability to create FILE structures on basis of existent physical data file (.TPS/.DAT (Clarion)/.DAT (Btrieve)/.DBF (dBase3, dBase4, Clipper, FoxPro).
- Ability to create and using of some structures which directly are not supported by Clarion compiler and, therefore, may not be used in a static kind. For example, array of reference arrays.
- Ability to “bind” with the standard static structures defined in the program, for reception of the full information for them and for its fields and/or for work with their fields. It is especially necessary to work with the structures transmitted through non-named reference variables &GROUP/&QUEUE/&FILE/&VIEW type. In this case, standard operators WHAT, WHO, WHERE intended for it that, as the saying goes, “have a rest”!
- More full set both information methods, and methods for processing fields.
- More full set of information methods which allows to carry out FULL analysis of VIEW-structure which is inaccessible to standard its properties. For example, there are no standard facilities for getting information about list (names and references) of file fields, declared with PROJECT on the any level. Also it is impossible to get full information about JOIN, including its nesting, names and key references, key fields and files.
- Presence of the methods, that allows to full-value work with queues without necessity of obligatory “imposing” to fields of external names.
- Ability to set expanded properties for fields that unavailable for fields of static structures. For example, it is possible to setup format of an input/output to all types of fields or additional comments for a field with an opportunity of the further processing and the analysis. Thus, for example, it is possible to load from an external textual file the description of structure with necessary comments and, analyzing them in the program, to place fields on the form in the necessary order or to process them (the control of values of input, performance necessary assignments with calculations through EVALUATE() , and so forth).
- Ability to use variable names for file, keys, MEMO-/BLOB-fields, as against similar libraries in which only names-constants are possible.
- Ability to simply work with SQL-queries without declaration of numerous dummy files.
- Support new drivers: In-Memory and IP Driver.
Structure
Library contents of template file dLib.TPL, which contents an global extension to include DynaLib capabilities and a set of libraries (static and dymanic) and header file dLib.INC which declares a library classes. Library support ONLY 32-bit memory model and shipped as standalone run-time or local. Using the given library as a standalone run-time you MUST include the file dLib5x.DLL, dLib55x.DLL, dLib60x.DLL (depending of Clarion) into yours application ship list.
Using
Before library and template using, it needs to be registered in Clarion Template Registry. After you have finished library installation to your computer launch the Clarion IDE. Then select menu Setup and choose Template Registry item. Click Register button and you will see Open File dialog where you search for the following file dLib.TPL. Click him by mouse and press button Open. For a few seconds templates will be registerd. The first stage has completed.
Hint: I want to remind you that template will be displayed in the list of available templates only in 32-bit projects. Otherwise you see a warning.
Thus, open your application where you want to append DynaLib capabilities, then choose menu Project -> Properties… or click Project button. In the Project Editor window click Properties… button then change Target OS to Windows - 32bit. Press OK. Then choose the menu Application -> Global Properties… or click the Global button. Global Properties window is opening. Press an Extensions button. In the Extension and Control Templates press Insert button then choose the DynaLibGlobal template and press Select. Template has been added. After you have been finished you can see the result:
History
current version 4.1.6.2 (2009)
[*]:
version 4.0.4 (March 10, 2008)
[*]: Under filling
version 4.0.3 (2008)
[*]: Under filling
version 4.0.2 (2007)
[*]: Under filling
version 4.0.1 (2006)
[+]: Complete support of new driver IP Driver.
[+]: New functionality of TDynaSQLClass - support of any parametric expressions. Now it sis possible to simply control by parameter’s values - methods of class themselves can define number and type of parameter. You must just set the values for them. For more details - see the example in the beginning of description.of class and descriptions of methods Prepare and Reset.
[+]: New method TDynaSQLClass.Blobs.
[+]: New service methods of TDynaGroupClass - Date2Long/Time2Long and Long2Date/Long2Time, that allows to solve some collisions appearing on storing data in Clarion format on exterior data sources, for example, on SQL servers.
[*]: TBaseGroupClass - default format for TIME fields changed from @T1 to @T4. See the description of method TBaseGroupClass.Picture.
[*]: Little change of logic of work of method TDynaSQLClass.Load as applied to contents of the internal receiving buffer after termination of work of this method, that has allowed to make work with method TDynaSQLClass.Next more convenient and logical. For more details - see the description of aforesaid methods.
[-] An error of ODBC-library may be posted because of the incorrect order of process of destructors of global service classes of the given library at the end of application. The internal service class of manager of connections to ODBC-sources is completely rewritten.
version 4.0 (March 07, 2005)
[+]: New class TDynaSQLClass. Allows to organize more comfortable work with dynamic SQL-queries without necessity of the declaration of dummy files, using for this purpose all functionality of the library. It uses fast direct access to SQL-sources through the ODBC-driver, bypassing file drivers of Clarion. For more details - see the description of the given class and its methods.
[+]: The new form of method TDynaFileClass.Clone, allowing to create file structures on the basis of existing disk files of the data. In the given version the files created by drivers ‘CLARION’ and ‘TOPSPEED’ are COMPLETELY supported. Both usual and encrypted. Also, files created by drivers BTRIEVE, DBASE3, DBASE4, CLIPPER, FOXPRO are completely supported too, including complete support of MEMO-files and ALL versions of key files NDX, NTX, IDX, MDX, CDX). For the files created by driver CLARION, key OVER-fields are supported too. As against a browser of files given by Clarion IDE, that simply does not open similar files. Also the given form of method TDynaFileClass.Clone allows to create file structures for receiving of results of execution of SQL-queries. All SQL drivers of Clarion are completely supported.
[+]: The new form of method TDynaFileClass.Clone, allowing to create file structures on the basis of the information from instances of new class TDynaSQLClass.
[+]: Addition of functionality of method TDynaFileClass._DRIVER - a possibility of change the driver both during creation of file structure, and after full of its creation.
[+]: New Read/Write property StdDeepAssign of class TBaseGroupClass.
[+]: New additional properties of fields TBaseGroupClass.ExtProps:SET and TBaseGroupClass..ExtProps:GET
[+]: New method TBaseGroupClass.RefFreeMem.
[+]: New method TDynaGroupClass._Clear.
[+]: New method TDynaQueueClass._Free.
[+]: New method TDynaQueueClass._Clear.
[+]: New method TDynaFileClass.Blobs.
[+]: Addition of functionality of method OutDebugInfo.
[+]: Complete support of new driver In-Memory Driver.
[+]: Quotas for the freeware-version of library are increased.
* maximum of fields is increased up to 15
* maximum of keys is increased up to 2
* maximum of JOIN-blocks in VIEW-structure is increased up to 2
[*]: Changes of internal realization of some methods of class TBaseGroupClass.
[-]: A possible error after full creation of new structure by the appropriate form of method _LIKE on the basis of an existing instance of TBaseGroupClass.
version 3.6.3 (XXX XX, 2004)
[+]: Compatibility with the last release C61.
[+]: Functionality of the general procedure dFile::RegistryDriver is expanded.
[+]: New general procedure of receiving of the name of the driver of the given file.
[+]: Functionality of methods OutDebugInfo of all classes is expanded.
[+]: Reprocessing of library kernel for refusal of using of standard ASCII-driver. i.e., in the given version has disappeared necessity obligatory declarations of the ASCII-driver in the program where the library is used.
[-]: Methods LinkTo and Clone of class TDynaFileClass not always correctly determined the name of the driver of “binded”/clonned file.
version 3.6.2 (XXX XX, 2004)
[+]: Compatibility with the last release of C61.
[-]: Incorrect processing of enclosed groups in LIKE-methods, that, also, generate an errorr during execution of first form of method TDynaFileClass.Clone.
[-]: An error using text form of declaration of string fields with a pattern. For example: “Field1 STRING(@N-_5)”
version 3.6.1 (XXX XX, 2004)
[+]: Compatibility with the last release of C61.
[+]: Increase of speed of processing of the text form of declaration of structure/fields.
[-]: An error in the text form of declaration of NUMERIC-fields for DBF-files with the help specifications of dimension in attribute NAME.
For example: “Field1 REAL,NAME(’Field1=N (9,2)’)”
version 3.6 (May 19, 2004)
[+]: Full compability with C6.1;
[*]: For C60 work of the method TDynaFileClass.IsOpen changed. See the description in help.
version 3.5 (Apr 29, 2004)
[+]: Full compability with C6 (including latest release);
[+]: Realization of OVER-attribute for all structure added. Reassignment of OVER-variable is allowable at run-time;
[+]: New method _vOVER added;
[+]: New method TDynaFileClass.LinkTo added;
[*]: Prototype of second form of method TDynaFileClass.Clone changed for compability with the prototype of the first for of the given method;
[-]: Some minority bugs fixed.
version 3.0 (Jul 30, 2002)
[+]: Full support of THREAD-attribute for all structures of the library
[+]: Creation of dynamic VIEWs (new class)
[+]: New methods to TBaseGroupClass added: _GROUP(VIEW), _LIKE(VIEW), _LIKE(LikeField), ListBoxFormat, DeepAssign(VIEW), IsIdentical, _Thread - allows to change THREAD attribute at run-time!
[+]: New mode of applying of DeepAssign methods - “Prepare-Run-Free” (see help for details).
[+]: New method to TDynaFileClass added: IsOpen (analogue of standard STATUS), BindMemos, methods to organize scan processes ProcessDisplaySet, Process, LoadTo. Thease methods are very cool! To the extent that call of this one method may replace whole procedure of PROCESS type.
[-]: Impossibility of loading of structure from string.
[-]: Error at program termination, linked in the C55.
version 2.1 (Oct 11, 2001)
[+]: The first public release.
Purchase
- $80 per Standard license on ClarionShop
- $150 per Advanced license on ClarionShop
- $180 per Professional license on ClarionShop
Additional
This library is a part of DynaPack bundle.

