sybase anywhere have been working on a visual foxpro compatible version of the advantage database server for some time and, just before christmas, the long-awaited version 9.0 was released in beta. you can download the beta version (time limited until the end of march 2008) from here:

http://devzone.advantagedatabase.com/dz/content.aspx?key=20

 

for a full version you will need to download the server, the data architect and the advantage oledb and odbc drivers.

 

now some of you may be wondering why this should be news, or maybe you have never heard of the advantage database server. there is a lot of very good information on this neat little tool on their web site and i have been very impressed with it but there are a couple of things that should make it of immediate and very real interest to all vfp users:

 

[1] the odbc driver will access all current vfp data table and data types. yes, including auto-inc, varchar() and all the newest features. for any of you who have been unable to move off vfp 6.0 because you need to access your data through odbc there is now a solution!

 

[2] the advantage server can be used to connect directly to dbf files, replacing the dbc with a true multi-threaded, multi-user, remote server that includes, among many other features, a sql debugger (yes, you can step through sql queries one line at a time!), replication and merge functionality, and that runs on windows, linux or netware.

 

i have been playing with this version for a couple of weeks now and have been very impressed by its capabilities and potential. i am not going to try and cover all the things that the advantage database server can do, but perhaps the one thing that is worth mentioning is that it can remove the necessity for users to have direct access to your dbf files. this requirement has long been one of the major objections to the dbf file as a data store because of the ease with which these files can be read and even corrupted. the advantage database server makes this direct access unnecessary. dbf files can now be hidden away from prying eyes (only the server needs access) and the server also manages locking and concurrency issues.

 

coming so soon on the news that microsoft are abandoning vfp to its fate, it is nice to see that someone out there thinks that there is still some value in the product and is willing to put some effort into it.

 

here is what the help file has to say about vfp support:

visual foxpro 9 file format support

advantage support for foxpro dbf tables and cdx/idx index files has been enhanced to include all data types supported by visual foxpro 9.  this includes support for auto-increment, blob (binary large objects), currency, datetime (timestamp), varbinary, and varchar field types. 
null field support has also been added to give true sql-style null handling for visual foxpro dbf tables.  support for true unique (candidate) indexes is now also available on dbf tables; this allows for better sql optimization, the definition of primary keys, and the creation of referential integrity rules. 
additionally, support for long field names with dbf tables has been added.  in addition to supporting the robust and high-performance advantage proprietary locking on the new table format, advantage also supports visual foxpro compatibility locking, which allows you to use advantage-enabled applications to share tables with existing visual foxpro applications that are not using advantage.

visual foxpro upsizing utility

 to complement the enhanced support for visual foxpro tables, this release includes an upsizing utility that aids in updating your application to use your existing visual foxpro tables with advantage database server. 
it is not necessary to update your tables or indexes to allow them to be used with advantage database server.  however, the upsizing utility will export much of the information in your visual foxpro database container (.dbc) to an advantage data dictionary (.add) to allow support for features such as long field names, primary keys, referential integrity, and triggers. 
this utility, written as a visual foxpro application that you can modify, currently has the ability to export view definitions, referential integrity rules, default field values, field and table validation rules, and primary keys.

 

if you are still not sure what this is all about, here is an extract from the overview section of the (very comprehensive) help file for version 9.0:

 

advantage database server is a high performance client/server rdbms for stand-alone, networked, internet, and mobile database applications. advantage database server allows developers the flexibility to combine powerful sql statements and relational data access methods with the performance and control of navigational commands. advantage has native development interfaces designed to leverage existing knowledge of popular development tools. with optimized data access methodology for easily delivering unparalleled performance, advantage provides security, stability, and data integrity while being completely maintenance-free.
the advantage database server is the key to improved database performance in network environments. the server can be visualized as an intelligent controller that reduces competition for resources and off-loads much of the work normally performed by each client workstation. it is responsible for all database access, including all reading and writing of data, and lock management. working with the network operating system, the advantage database server processes data requests and returns the information to the network clients.
the advantage database server supports the netware, windows, and linux operating systems. the advantage database server for netware is implemented as a netware loadable module (nlm). an nlm is simply an executable for the netware operating system. the advantage database server for windows operates as a windows service.

note  the advantage database server for windows is a service. it cannot be run as a standard windows application. see installing and starting the advantage database server for windows , for more information on windows services and how to start them.

the advantage database server retrieves requests for database operations to be performed on behalf of the clients. the advantage database server locates tables on the server and processes the database operations. the result of the operation is then returned to the client across the network, eliminating the need to send the database to the client for processing. this provides far better concurrency control and system integrity than is otherwise available.
traditional non-client/server applications send raw data from the server across the network to be processed on the workstation. with the advantage database server, much of the data is processed by the advantage database server on the file server. by decreasing network traffic, you increase performance.
the advantage database server integrity system ensures that database updates either run to completion or do not begin. the advantage database server will not execute partial commands. this means that the integrity of your database no longer depends on the stability of the workstations on the network. because the advantage database server is responsible for all database access (on behalf of the clients), it can do a far better job of concurrency control than traditional systems, where concurrency must be synchronized between remote workstations. better concurrency control means better multi-user performance.

 

what we have still to find out is what the new version will cost! but if you are looking for ways to leverage your vfp data and applications without the costs involved in porting to sql server or mysql, this may be something that you should take a long hard look at - for the next couple of months at least it will be freely available for download and evaluation.

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>