Page 1 of 1

Which the best choice for Client Server for DBFCDX?

Posted: Wed Aug 08, 2007 2:50 pm
by dutch
Dear All,

I gonna move from Clipper/FW to xHb(Commercial)/FWH 2.5 with Client Server solution. Which the best choice of Database server that work with DBFCDX?

I found

- ADS with DBFCDX
- MySql with DBFCDX
- Anything else...

Thanks for any idea and help.
Dutch

Posted: Wed Aug 08, 2007 4:53 pm
by R.F.
There are only two Client/Server solutions based on DBFCDX:

Advantage Database Server
Apollo Software (AKA Six Driver)

MySQL cannot handle DBFCDX tables, it uses its own data storage format.

That lets only two tools in the game: ADS and Apollo Software.

The main disadvantage of Apollo (http://www.vistasoftware.com/introduction.asp) is that the Client / server part can only be handle using SQL, this means that you need to rewrite ALL the data access of you application.

Since you need to rewrite all the data access any other SQL based solution will work for you, working this way, the only thing that you will keep will be the data in the DBFCDX files, but all the methodology of data access (I mean: USE, APPEND, REPLACE, etc) has to be fully rewritten.

Another disadvantage of Apollo is that the server only runs on Windows based machines, you cannot use it with Novell nor Linux servers.

The main advantage of Apollo is pricing, less expensive, by far, than ADS.

Talking about ADS, well, what can I tell you, I've been with ADS from 10 years now, and me and all my ADS customers are very happy with it.

The main ADS disadvantage is price, it cost between 150 and 175 US dollars for every workstation you have on your network but worth the price.

With ADS you can keep your DBFCDX tables, along with your data access methodology, this means that you can use APPEND, REPLACE, COMMIT, etc, and at the same time to have all the Client /server power.

You can also mix Xbase based command with SQL queries both in the same EXE.

ADS also offers internet access to you data.

Some changes have to be done in the source code but in my experience you can be fully C/S operative in a month or so with your same source code.

Posted: Wed Aug 08, 2007 5:34 pm
by dutch
Dear Rene,

I read a lot of story about ADS and I've some question?

1. The license is per workstation or a license per 5 w/s (for example)

2. When I install ADS, it means I can access Local, Remote and Internet?

3. How can I use another app. (CDBF for example) to open a file in ADS?

4. If I'm right, no file corrupt any more?

5. I've FWH2.5 and xHB July 2005 build (Commercial), Is it fully support?
or Upgrade to current version?

Regards,
Dutch

Posted: Wed Aug 08, 2007 9:23 pm
by R.F.
Dutch:

>1. The license is per workstation or a license per 5 w/s (for example)

Licencing is a problem in ADS, it comes in packages of 5, 10, 15, 25, 50, 100, 250 and 1000 concurrent users, you cannot have a 7 users licence, you need to have a 10 users licence, or the 5 users licence, but 2 users will not be able to use the application, they will have to wait until one user leaves the licence free to use it.

>2. When I install ADS, it means I can access Local, Remote and Internet?

Yes and not.

First of all, we need to clarify the difference beteween servers:

REMOTE SERVER: is the ADS product itself, it's installed in your hardware server (Linux, Novell or Windows) to supply database services to your LAN, so all your workstations within your LAN will use ADS CLIENT/SERVER REMOTE server.

INTERNET SERVER: It comes along with REMOTE server, is a part of the REMOTE server itself, you don't need to buy or configurate anything, it's included, you only thing have to do is to set the ports, and open your router ports and address them to the ADS server (some extra programming is requiered, but it's not big deal one or two extra programing lines and you are working with internet server).

LOCAL SERVER: This is a "small" ADS server, it comes full into a self-contained DLL and is designed for testing propouses only and stand alone applications, it really supports all the ADS stuff with two exceptions: is not client/server, it doesn't support transactions, it's great for taking it home because you can develop your application and you don't need to be where the server is.

The main advantage of using the ADS LOCAL server is that you leave your application ready for the REMOTE or the INTERNET server, since the same source code will work with all the 3 servers.

>3. How can I use another app. (CDBF for example) to open a file in ADS?

ADS provides its own database management tool, is called ARC (Advantage Data ARChitech) it a full DBU system that let you use ADS tables, DBFCDX files and handle data dictionaries.

>4. If I'm right, no file corrupt any more?

Never again, no index corruption, nor database corruption either, no matter how many records you have in your database (I have customers with DBFs with more than 20 million records in a single DBF).

>5. I've FWH2.5 and xHB July 2005 build (Commercial), Is it fully support?
or Upgrade to current version?

In general it will work accurate with ADS, I recall that there's a small "issue" with xHarbour regarding the RDDADS with that version, the problem is with the Internet access, not big deal but anyway, you should check the latest xHarbour commercial version, that issue is solved in the most recent release.

Posted: Thu Aug 09, 2007 7:01 am
by dutch
Dear Rene,

Where do I download Advantage Local Server for testing and which version?

What will I start?

Thanks&regards,
Dutch

Posted: Thu Aug 09, 2007 2:36 pm
by reinaldocrespo
My 2 cents;

Any installation where Client-Server is a must, then it is well worth the price you pay for ADS, ie. ADS price is much too little to be a consideration on these scenarios. Plus, you get to keep ISAM and add SQL on top --think a little about that!

Here is what I mean:
Your app may run without ADS on installations where data corruption is somewhat acceptable or unlikely to happen too often and speed is not crucial. When the number of users is higher or speed is crucial or data corruption is simply not acceptable at anytime; then ADS is well worth the price. Obviously this a more serious environment, thus a price must be paid. In either case your source is still pretty much the same with/without ADS Client-Server.

I've converted most of my customer base over to ADS. Some of my .fpt files are over 80 gigs w 50 users accesing the DB. Absolutely zero corruption with lighting speed. I'm very-very satisfied using xHarbour 0.99.61 + BCC 5.5 + FWh + ADS server. These are tools we need to promote and make sure that they don't ever go away less we are willing to convert over to VB. :-(



Reinaldo.

Absolutely agree

Posted: Fri Aug 10, 2007 9:15 am
by dutch
Daer Reinaldo,

I agree with you and I would like to modify the program to use ADS but I need to install in my notebook for testing the program. I try to download from advantagedatabase.com but I do not sure which version and how to install it?

Regards,
Dutch

Posted: Sat Aug 11, 2007 4:46 pm
by R.F.
Dutch:

As Explained, you don't need to download the remote server yet to try in your notebook:

Download the Advantage Data Architech (ARC) from here:

http://www.google.d2g.com/ads/ver8/arc32.exe

You can use the ARC later as you DBU utility.

Install it in your computer, then go to the folder where you installed the ARC and you will find there 3 DLLs:

ACE32.DLL
Contains all the functions of the RDDADS.LIB to be called from your prgram

AXWCS32.DLL
This is the ADS client itself, it handles all the protocols and comunication stuff.

ADSLOC32.DLL
This is the ADS "local" server.

Copy those 3 DLLs to the folder where your application is.

Changes to be done in your code:

REQUEST ADS // instead or DBFCDX
RDDSETDEFAULT("ADS") // instead of "DBFCDX"

AdsSetFileType(2) // 1 - DBFNTX, 2 - DBFCDX , 3 - ADTADI

AdsSetServerType(7)
/*
this leaves your program ready to run with all the servers
local, remote and internet the values are:

1 - Local Server only (no remote or internet server)
2 - Remote Server only (no local or internet server)
3 - 1 + 2 = Local OR Remote server, leaves ads to choose the best
4 - Internet server only (no local or remote server)
5 - 4 + 1 Local or Internet
6 - 4 + 2 Remote or Internet
7 - 4+2+1 Any server
*/

And basically that's all because all the data access remains the same in the rest of your source code.

Compiling and linking:

You will need to add 2 LIBs files to your link script:

ACE32.LIB and RDDADS.LIB

Where to get them:

ACE32.LIB comes from the ACE32.DLL, you will need to "convert" the ACE32.DLL into ACE32.LIB using a Borland C++ tool called IMPLIB.EXE (comes in the bin directory of your C++ installation), Syntax:

IMPLIB ACE32.LIB ACE32.DLL

After that you will have a new file called ACE32.LIB ready to link to your script file.

RDDADS.LIB could be a little complicate to get, if it doesn't come with your (x)Harbour distribution (go to the LIB folder, and look there for RDDADS.LIB) then you will need to rebuild it from source code.

The source code is a (x)Harbour contribution, so you will need go where you got your (x)Harbour, look into CONTRIB folder, and there you will find another folder called "RDDADS" the source code is there, all the source is "C" code you will need to recompile it, (it's very easy, it comes with make files).

Once you have your libs built, just add them to your link script, and that's all you are ready to ADS.

Posted: Sun Aug 12, 2007 10:55 am
by dutch
Dear Rene,

Thanks for your kindness a lot for the start step. I'll try and move to ADS for sure.

- RDDADS.LIB should be matched with xHB version? I've xHB july 2005.

Best regards,
Dutch

Posted: Mon Aug 13, 2007 6:53 am
by Colin Wisbey
As good as Advantage is, just be aware that you will have problems if you want to index on related areas or on user defined functions. I make a lot of use of both and that was the show-stopper for me, causing me to stick with dbfcdx.