| |
| In the
version 1.7 of Xbase++ several major changes, fixes and
feature-set enhancements were made. The following shows the most
important ones in detail: |
| |
| Database
related changes |
| a) |
New
features |
| |
- Scopes, please refer to SET SCOPE, DbSetScope(), DbClearScope()
and DbScope() in the online documentation or check the links in
the List of Changes window of the online help.
- Dynamic change of the navigation order, see DbSetDescend()
and DbDescend(). Without using a descending index you can reverse
the behavior of navigational functions like DbSkip(), Eof(), Bof(),
GoTop() and GoBottom(). This is especially helpful for browsing
data.
- DbSeek() and OrdBagName() parameter enhancements.
- OrdCount() and OrdList() are new functions to obtain information
about orders open in a work area
- DbLocked(), to check if the current workarea is Flock()'ed.
- DbInfo( DBO_SERVER | DBO_REMOTE ) to retrieve information if
the table of the current workarea is stored on a remote drive
or managed by a server.
- Navigation to ghostrecord using DbGoto(0) instead of DbGoto(LastRec()+1)
is now guaranteed. And shall be the preferred way. It is much
safer in multi-user scenarios.
- OrdListRebuild() / REINDEX are now allowed if work area is
used in shared mode.
|
| |
|
| b) |
SET
RELATION options |
| |
- SET RELATION [TAG ..] [SELECT] is now supported. As a matter
of fact, the child area of a relation can be restricted in navigation
to a relational definition (1:1, 1:N).
- New functions DbRSuspendSelect() and DbRResumeSelect() are
introduced. They are designed to suspend a relational restriction
in your data model temporarily. A query on the entire child work
area is then possible without the need to clear a restricted relation.
- Relations between work areas do not influence Xbase++'s performance
when the record pointer is navigated in the parent work area.
Child work areas are synchronized with the parent only when accessing
data in a child work area.
|
| |
|
| c) |
Rework
of database notifications |
| |
Additional DB notifications
are introduced in Xbase++ 1.7 but not documented in the Online-Help.
- DBO_ORDER_REVERSED is sent when the direction of an order is
changed via DbSetDescend( .T. | .F. )
- DBO_ROWSET_CHANGED is sent when the row set changes due to changes
in SET FILTER, SET DELETED, SET SCOPE or when a SET RELATION..SELECT
was issued and a navigation occurs in the parent work area of
the relation.
- DBO_ORDER_CHANGED is sent when the logical/physical order is
changed. Note that this notification is also generated when a
new index is created since the new index becomes the controlling
one.
|
| |
|
| d) |
Rushmore
technology |
| |
The database kernel
of Xbase++ 1.7 uses Rushmore technology, Smart Filters and Expression
Optimization to increase database performance. For details see SET
RUSHMORE, SET OPTIMIZE and SET SMARTFILTER commands in the online
documentation.
Note: We will continue to improve this new exciting optimization
technology over the following releases of Xbase++. If you feel your
application is not performing fast enough, please send email to
support@alaska-software.com.
|
| |
|
| e) |
AES
- Encryption support |
| |
Despite our initial
announcement we have not integrated AES into the Xbase++ base product.
Our tests with early adopters have shown a too heavy performance loss
when having added the encryption layer to the DBMS Kernel of Xbase++.
We are currently reworking the AES integration. We are planning
to run a dedicated beta for this exciting but complex technology.
Public availability is rescheduled for Xbase++ 1.8.
Anybody who needs AES encryption support for Xbase++ DatabaseEngines
or wants to participate in the AES beta should send email to support@de.alaska-software.com.
|
| |
|
| Xbase
Parts and GUI related |
| a) |
XbpFileDialog |
| |
The
XbpFileDialog class has been moved to XppUI2.DLL. If your application
is using this class, the linker will report "unresolved external function"
when you rebuild your application. To avoid this, either add a reference
to XPPUI2.LIB to your project file or add
#pragma Library("XPPUI2.LIB")
to your PRG source code. |
| |
|
| b) |
Image
support |
| |
Most Xbase PARTs
capable of displaying image resources as captions are extended so
that the images can be specified in form of an XbpBitmap object rather
than a resource ID. This allows for loading a JPEG file from disk,
for example, and displaying it in an XbpStatic object.
In addition, if the XbpBitmap object defines transparency, transparent
areas within the image are automatically replaced with the background
color defined for the Xbase PART.
|
| |
|
| c) |
XbpQuickbrowse |
| |
Class XbpQuickbrowse
received a new method :SetDatalink(). It is used to specify a new
datalink for an XbpQuickbrowse object.
|
| |
|
| d) |
Changes
in XbpWindow |
| |
The default value
of the XbpWindow:ClipSiblings flag has been changed from .F.(false)
to .T.(true). This should fix any unclear or undetermined behavior
when GUI controls overlap. The only exception is the class XbpStatic
where this setting still defaults to .F.(false). Please see PDR 4180
for details. |
| |
|
| Debugger
|
| a) |
Database
related debugging info |
| |
The Variables monitor
is capable of displaying the contents of field variables and some
states of the current work area, like Bof(), Eof(), Recno() etc. A
list of all work areas can be displayed and the current work area
can be changed. This is helpful to work in the command window more
efficiently. |
| |
|
| b) |
Other
changes/enhancements |
| |
There are quite
a few debugger related modifications that make the debugger more comfortable
to use.
Altd() is supported now. Please read the online documentation
on this topic before using it. Enjoy!
|
| |
|
| Locale
support |
| a) |
Changed
functions |
| |
Please visit the
Changes Links in the online help for the functions SetLocale(), Cdow(),
CMonth(), Time() with respect to localization and/or internationalization.
|
| |
|
| b) |
Resource
Compiler |
| |
Additionally, ARC.EXE
now supports character resources that can be loaded with the new LoadResource()
function. This eases the localization of applications.
The function LocaleConfigure() allows for controlling the various
code page dependent tables in greater detail.
|
| |
|
| Miscellaneous |
| a) |
#define
constants |
| |
Memory() and Os()
are using #define constants of the new include file Os.ch. Os() now
also recognizes Windows Me and Windows 2000, and returns more detailed
information. |
| |
|
| b) |
Resource
DLLs |
| |
Alink is now able
to create resource-only DLLs, see SOURCE\SAMPLES\BASICS\RESOURCE\RESDLL.EXE
for an example. |
| |
|
| c) |
Closed
PDRs |
| |
More than 280 PDRs
fixed. Please see CLOSEPDR.TXT for an overview. If you need more details,
please visit http://www.alaska-software.com/kb
and search for the PDRID. |
| |
|