The Advantage Database Server is a mature product, and version 7.0 is the latest release at the time of this writing. With this release, Extended Systems has continued the tradition of adding powerful new features to the server, while maintaining the ease of use that is its hallmark. These features are discussed in the following sections.
A trigger is a compiled routine that executes on the server in response to a data-related event. ADS supports record-level triggers on insert, update, and delete events. For each of these events there are three trigger event types: a before, an instead of, and an after event type. As a result, there are a total of nine trigger events.
Like AEPs (Advantage Extended Procedures), ADS’s stored procedure mechanism, triggers can be implemented in a wide variety of languages. Specifically, Advantage triggers can be written as standard Windows DLLs (dynamic link libraries), COM (component object model) servers, Linux SO (shared object) libraries, or .NET managed assemblies. Unlike AEPs, Advantage triggers can also be implemented using SQL scripts.
Creating and installing triggers is discussed in Chapter 8.
Full text search (FTS) permits you to conduct high-speed, index-based searches of text, memo, and BLOB fields. Using full text search, you can add sophisticated search-engine functionality to your client applications. Full text search is discussed in detail in Chapter 3.
Two versions of a data dictionary can be compared. The result of this comparison is a script of SQL statements that you can use to transform one data dictionary to another.
The purpose of these generated SQL scripts is to permit you to easily upgrade a data dictionary from within a client application. Once an upgraded SQL script has been generated, you can customize it, if necessary, and then include that script in your application. For example, within your application you can determine the current version of a data dictionary, and execute the appropriate upgrade if you find it to be an older version. This capability is particularly beneficial to developers who deploy their applications to many different sites and who need to provide a mechanism to upgrade older data dictionaries.
Comparing data dictionaries is discussed in Chapter 4.
While .NET developers can use the Advantage OLE DB Provider with the classes of the System.Data.OleDb third-level namespace to connect to ADS, Extended Systems has created a custom .NET Data Provider for optimized access to ADS using ADO.NET. These classes can be found in the AdsProvider namespace and include AdsConnection, AdsCommand, AdsDataReader, AdsParameter, AdsParameterCollection, AdsCommandBuilder, and AdsDataAdapter.
The Advantage .NET Data Provider is discussed in Chapter 15.
Prior to the release of ADS 7.0, Java developers had to rely on the JDBC class 1 JDBC-ODBC bridge in order to use ADS from their Java applications. Although this solution works, it is limited to clients running on ODBC-enabled operating systems. It also creates a more complicated client install, since not only does the Advantage ODBC driver need to be installed, but so does the ACE (Advantage Client Engine). In ADS 7.0 and later, Java developers have a class 4 JDBC driver for ADS, the Advantage JDBC Driver. A class 4 JDBC driver is one that is written entirely in Java, and that does not require a client API. As a result, Java client applications using a class 4 driver are very convenient to install.
The Advantage JDBC Driver is discussed in Chapter 13.
With each release of ADS, more of ADS’s functionality has been exposed through Advantage SQL. With ADS 7.0, support has been extended to almost every aspect of the product. Now you can obtain metadata about databases and data dictionaries, create and remove users, set user access rights, and more, all using the SQL language. Now there is almost nothing you can do with ADS that cannot be done using SQL.
To learn more about the syntax and semantics of SQL with Advantage, please refer to Chapters 9, 10, and 11.
While not as spectacular as triggers or full text search, a number of additional enhancements to ADS are sure to be welcomed by pre-7.0 ADS users. The first of these is a new compression algorithm that will improve the speed of data transfer over networks. While this feature will improve the already fast performance of ADS over local area networks (LANs), it will be most welcome by developers needing to access ADS from client applications across the Internet and in other WAN (wide area network) environments.
Another welcome addition is a MONEY field type in ADS tables. The money field is similar to the CURDOUBLE field. However, unlike CURDOUBLE fields, which are internally stored as IEEE (Institute of Electrical and Electronics Engineers, a standards body) double values, all calculations with those fields are done using doubles. IEEE doubles can easily lose precision. With the MONEY data type, all storage and calculations are performed using 64-bit integer fields, which lose no precision.
Another notable upgrade applies only to the NetWare version of ADS. With ADS 7.0 and later, NetWare ADS servers will no longer be limited to files smaller than 4GB. The maximum file size is now 16 exabytes for tables, 35 terabytes for index files, and 4 terabytes for memo files. You will also need to be using NetWare 5 or later for this feature.
An exabyte is a billion gigabytes.
In the next chapter, you will learn how to use ADS to create tables.