GrafX Software  

Comix /ClipMore

Comix is a high performance replaceable database driver for Clipper that can be used in place of Clipper's default DBFNTX.

Free Demo, Upgrades, and OnLine Ordering Info at bottom of this page.

To Order Page( Product will be shipped Via Federal Express )


CA-Clipper 5.2


* Simply by relinking, your apps have seamless access to the many advantages of Microsoft's FoxPro CDX/FPT indexes including instant compatibility with a host of Windows systems.

* Store unlimited indexes in one compound index and reduce file handle requirements!

* Comix indexes are 1/3 to 1/6 the size of NTX's subtantially reducing disk storage requirements and improving LAN performance.

* Scoped Indexes allow you to instantly access records within any range, even in TBrowse()!

* Conditional Indexes store only the keys which meet a specific condition.

* Use cmxKeyNo() and cmxKeyCount() for slick scroll bars and "record n/total" displays.

* SET RELATION TO ... SCOPED lets you handle true one to many relationships with ease! When you select the child workarea, only the records related to the current parent record are visible.

* Virtual Unique Indexes make any index appear UNIQUE instantly!

* Dynamic Ascending/Descending Indexes let you view records in ascending or descending order using the same index!

* Custom Built Indexes (CBIs) let you add and delete only the keys you want. You can also change a Conditional Index to a CBI.

* Find the last occurence of a key as quickly and easily as you find the first with cmxSeekLast()!

* Blow past DBT limits! Comix allows you to store binary data directly in memo fields for unlimited flexibility.

* Free up memory! Comix 3.0 uses 8K less memory than DBFNTX for Clipper 5.2. Comix can be fully dynamically overlaid in tight memory situations.

* Excellent LAN Performance - Sophisticated locking strategies available nowhere else provide maximum index access concurrency with total safety. Or get 100% FoxPro compatible locking for seamless integration of FoxPro and Clipper apps.

* One Stop Solution. For unbeatable performance, reliability, and features, Comix is the only RDD you need.

COMIX RDD Commands

DELETE TAG Delete a tag from an index file

INDEX Create an index

INDEX FOR Create a Conditional Index

INDEX ... CUSTOM Create a Custom Built Index

REINDEX Recreate all indexes in the current workarea

SEEK Seek to first occurrence of a key

SEEK ... LAST Seek to last occurence of a key

SET DESCENDING Dynamically make index descending/ascending

SET INDEX TO Bring the specified indexes into use

SET MEMOBLOCK TO Set memo block size

SET ORDER TO Make the specified tag the master index

SET RELATION TO Set up a scoped relation

SET SCOPE TO Set/clear top and bottom index scope

SET SCOPEBOTTOM Set/clear bottom index scope

SET SCOPETOP TO Set/clear top index scope

XINDEX Create an index using extended expressions

COMIX Functions

cmxAutoOpen() Get/set automatic open mode

cmxAutoOrder() Get/set automztic order for structural index

cmxAutoShare() Get/set automatic sharing control mode

cmxClrScope() Clear top or bottom index scope

cmxCount() Get the count of indexes in use

cmxCustom() Get/set Custom Built Index flag for an index

cmxDescend() Get/set descending flag of an index

cmxFor() Get/set FOR condition of an index

cmxIndexInfo() Return an array of index information

cmxIndexCount() Get number of indexes in use in current workarea

cmxIndexInfo() Return an array of index information

cmxKeyAdd() Add a key to a Custom Built Index

cmxKeyCount() Get the number of keys in the index

cmxKeyDel() Delete a key from a Custom Built Index

cmxKeyGoto() Go the specified key number

cmxKeyno() Get the logical record number within an index

cmxKeysIncluded() Return the number of keys included in the index

cmxKeySkip() Skip the specified number of keys

cmxKeyVal() Get current key value from master index

cmxMemoBlock() Get/set memo block size

cmxRollback() Rollback changes made to current record

cmxSeekLast() Seek to last occurnace of a key

cmxSetRelation() Set a scoped relation

cmxSetScope() Set/Clear top or bottom index scope

cmxShared() Get/set shared/locking mode for database & indexes

cmxSkipUnique() Skip to next/previous unique key

cmxSys() Provide low-level control over Comix's operation

cmxUnique() Get the unique flag for an index

cmxVersion() Return version of the Comix RDD

ordBagExt() Get the default extension of an index

ordBagName() Get the file name of the specified order

ordDestroy() Delete the specified tag from the .CDX

ordFor() Get the FOR condition for the given index

ordKey() Get the key expression for the given index

ordName() Get the tag for the nOrder'th index

ordNumber() Get the order of the index with the given tag

ordSetFocus() Make the specified index the master index

COMIX / ClipMore Bundle

ClipMore works with Comix to give Clipper apps the power of state of the art

Query Optimization.


CA-Clipper version 5.02

Comix RDD version 3.0

ClipMore Features

* Add Blazing Speed to TBrowse's, Reports, Replaces, ad-hoc queries, and anywhere you do selective database access.

* Using ClipMore is as easy as SET FILTER TO but is much much faster!

* The SET FILTER TO command automatically maps to ClipMore's cmFilter() function, giving your apps blazing response times simply by relinking!

* ClipMore uses all available indexes to greatly enhance the speed of selective data access. Typical speed improvements are from 10 to 1 up to an amazing 1000 to 1.

* Stop wasting time retrieving records that do not meet the specified condition!

* Linear Optimization substantially improves performance even when no indexes are available!

* Eliminate sluggish Page Up / Page Down response times in TBrowes's. Get instant record to record response.

* ClipMore is the only Query Optimizer that uses 3 types of optimization (Index Optimization, Linear Optimization, and Smart Filtering) to isolate records under the toughest of conditions!

* ClipMore's high level cm* functions, such as cmFilter() and cmReFilter(), give you a powerful yet simple interface to add blazing speed to your applications.

* cmSaveFilter() and cmRestFilter() make interactive querying systems a breeze to design and implement.

* For the Power Users, ClipMore gives you access to the low-level RecordList functions used to implement the cm*() functions.The rl*() functions give you complete flexibility to attack your application requirements in the best way possible.

* ClipMore gives you the power to create better solutions to user needs and makes your development efforts simpler, faster andmore profitable.

ClipMore Functions

cm2Str() Convert variable to equivalent string constant

cmClrFilter() Clear index filter previously set up by cmFilter()

cmDestroyFilter() Destroy a saved filter without restoring it

cmDoLinear() Perform Linear Optimization/eliminate maybe's

cmFiltCount() Get the number of records which meet the condition

cmFilter() Rapidly isolate records meeting a condition

cmGetLinear() Get the current setting of Linear Optimization

cmKeyCount() Return the number of keys in the index (filtered)

cmKeyGoto() Goto the specified logical key number (filtered)

cmKeyNo() Return the logical key number (filtered)

cmKeySkip() Skip the specified number of keys (filtered)

cmReFilter() Rapidly isolate records meeting additive condition

cmRestFilter() Restore a saved filter

cmSaveFilter() Save the current filter state

cmSetLinear() Set whether or not to use Linear Optimization

cmSmartFilter() Get/set smart filter setting

cmVersion() Get ClipMore version

rlAnd() AND together two RecordList's

rlClear() Remove a record from (clear a bit in) a RecordList

rlCount() Count the number of records in a RecordList

rlDestroy() Destroy (free memory for) a RecordList

rlExFilter() Extract the Filter RecordList

rlGetFilter() Get the Filter RecordList

rlHasMaybe() Determine if the RecordList has any Maybe's

rlMaybeEval() Remove Maybe's from a RecordList

rlLen() Get the length of a RecordList

rlOptLevel() Get optimization level rlNewQuery() achieved

rlOr() OR together two RecordList's

rlNew() Create a RecordList

rlNewDup() Create a duplicate of a RecordList

rlNewQuery() Create a RecordList of recs meeting the condition

rlNextRecno() Get the next record in a RecordList

rlNot() NOT a RecordList

rlPrevRecno() Get the previous record in a RecordList

rlSet() Add a record to (set bit in) a RecordList

rlSetFilter() Set the Filter RecordList

rlSetLoHi() Add records in range to a RecordList

rlTest() Determine if a record is in a RecordList

INT.gif (3958 bytes)




To Order Page( Product will be shipped Via Federal Express )

Demo download. This Demo lib will only open 2 files. You will be able to access and write to Fox 2.5 CDX files with this demo



GrafX Software