ADS Versions

ADS Versions

Postby TimStone » Wed May 16, 2012 3:08 pm

I have been working with ADS for many years. With the assistance of some people, I have managed to obtain drivers to work with ADS 7, 8, and 9. This includes a linked library that supports all 3 sets of drivers.

When version 10 came out, it would not work. I was told it contained too many changes.

So here is my problem. I have clients on ADS 7, 8, and 9 and would like to now use 10. Can anyone provide guidance on bridging this problem ? I'm using xHarbour ( .com, Aug 2010 ) with FWH 12.04

And a second question. I was able to get a product build using Harbour, FWH 12.04, and MSVC 2010. I had to limit it to DBFCDX to work. Can anyone provide documentation on ADS libs for Harbour ( current Five Tech built version ) ?

Thanks.
Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
User avatar
TimStone
 
Posts: 2909
Joined: Fri Oct 07, 2005 1:45 pm
Location: Trabuco Canyon, CA USA

Re: ADS Versions

Postby nnicanor » Wed May 16, 2012 10:07 pm

Tim,

You can use last harbour for MVC with ADS, you need to use last ADS 10 Dll, do not combine with other versions of DLL because some problems occurs, i have an academic system compiled with last xHarbour and Harbour builds with BCC63 and Last Harbour build With MVC 2010 With ADS and all working fine, local or remote.

I'am using FWH 1105, using libs patchs for last harbour.

You can get last rddads.lib for boths xharbour and harbour in fivewin contribs.

Regards,
Nicanor Martinez M.
Auditoria y Sistemas Ltda.
MicroExpress Ltda.
FW + FWH + XHARBOUR + HARBOUR + PELLES C + XDEVSTUDIO + XEDIT + BCC + VC_X86 + VCC_X64 + MINGW + R&R Reports + FastReport + Tdolphin + ADO + MYSQL + MARIADB + ORACLE
nnicanor@yahoo.com
nnicanor
 
Posts: 295
Joined: Fri Apr 23, 2010 4:30 am
Location: Colombia

Re: ADS Versions

Postby TimStone » Wed May 16, 2012 10:44 pm

Thank you for that information. I did the build and I receive over 200 unresolved externals related to rddads.lib ( adsfunc.obj ).

When using xHarbour ( xCC ), I have to include ACE32.lib, but there is no such lib available in FWH or Harbour. Is that needed here, and if so, where is a resource for it ?

Tim
Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
User avatar
TimStone
 
Posts: 2909
Joined: Fri Oct 07, 2005 1:45 pm
Location: Trabuco Canyon, CA USA

Re: ADS Versions

Postby nnicanor » Thu May 17, 2012 12:44 am

Tim,

I am using ace32.lib coming with aceapi downloaded from http://devzone.advantagedatabase.com those lib work with fine whit XCC and MVC.

You can download my libs ace32.lib and rddads.lib

http://190.90.160.205/pruebas/ads_mvc.zip


Regards,
Nicanor Martinez M.
Auditoria y Sistemas Ltda.
MicroExpress Ltda.
FW + FWH + XHARBOUR + HARBOUR + PELLES C + XDEVSTUDIO + XEDIT + BCC + VC_X86 + VCC_X64 + MINGW + R&R Reports + FastReport + Tdolphin + ADO + MYSQL + MARIADB + ORACLE
nnicanor@yahoo.com
nnicanor
 
Posts: 295
Joined: Fri Apr 23, 2010 4:30 am
Location: Colombia

Re: ADS Versions

Postby nnicanor » Thu May 17, 2012 12:51 am

Tim,

You can download aceapi from this link advantage client engine.

http://devzone.advantagedatabase.com/dz/content.aspx?key=20&Release=16&Product=5

Regards,
Nicanor Martinez M.
Auditoria y Sistemas Ltda.
MicroExpress Ltda.
FW + FWH + XHARBOUR + HARBOUR + PELLES C + XDEVSTUDIO + XEDIT + BCC + VC_X86 + VCC_X64 + MINGW + R&R Reports + FastReport + Tdolphin + ADO + MYSQL + MARIADB + ORACLE
nnicanor@yahoo.com
nnicanor
 
Posts: 295
Joined: Fri Apr 23, 2010 4:30 am
Location: Colombia

Re: ADS Versions

Postby TimStone » Thu May 17, 2012 8:12 pm

Thank you for the file reference. I had already downloaded and tried the files from the ADS developers page.
Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
User avatar
TimStone
 
Posts: 2909
Joined: Fri Oct 07, 2005 1:45 pm
Location: Trabuco Canyon, CA USA

Re: ADS Versions

Postby nnicanor » Tue May 22, 2012 1:07 pm

Tim,

Do you solve your issues ?

Regards,
Nicanor Martinez M.
Auditoria y Sistemas Ltda.
MicroExpress Ltda.
FW + FWH + XHARBOUR + HARBOUR + PELLES C + XDEVSTUDIO + XEDIT + BCC + VC_X86 + VCC_X64 + MINGW + R&R Reports + FastReport + Tdolphin + ADO + MYSQL + MARIADB + ORACLE
nnicanor@yahoo.com
nnicanor
 
Posts: 295
Joined: Fri Apr 23, 2010 4:30 am
Location: Colombia

Re: ADS Versions

Postby TimStone » Tue May 22, 2012 3:02 pm

I don't know. I have a different problem, and so I can't get the build to run properly. I don't believe its related to this ... its likely something in my configuration that I will have to resolve. I will report back once I isolate that problem and fix it.

Tim
Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
User avatar
TimStone
 
Posts: 2909
Joined: Fri Oct 07, 2005 1:45 pm
Location: Trabuco Canyon, CA USA

Re: ADS Versions

Postby reinaldocrespo » Tue May 22, 2012 5:22 pm

Hi Tim, and everyone else interested on this subject.

To use ADS ver x you need ACE32.dll version x as well as include files for that version. From ACE32.dll x you can build ACE32.lib version x (if necessary).

To build different rdd_ads.lib for each version it makes sense to have the needed files for each target build version on its own directory. For example:

c:\ads10\acesdk
c:\ads9\acesdk
c:\ads8\acesdk
...

You can obtain each acesdk from the advantage devzone as pointed earlier on this thread. To build rdd_ads.lib for each you only need to set HB_DIR_ADS environment variable to point to the correct acesdk subdirectory. After that simply execute the batch file that creates the lib.
For example to create rdd_ads.lib for ads 10 and xharbour 1.2.xxxx do this:

cd \xharbour_1.2.xxxx\contrib\rdd_ads

set HB_DIR_ADS = c:\ads10\acesdk
make_b32.bat

That's it. The developers of harbour have made the process a lot simpler than it used to be. That should work for any harbour or xharbour version. The only exception would be xhb.com. I have no idea how the commercial xhb.com works. But I'm sure they do and as a commercial product you should be able to get support.

You can now link the newly created .lib to your app and use any of the ace32 version 10 functions that have been ported to adsfuncs.c. Including all the new stored procedures and sql commands (such as MERGE! -I couldn't live without it). While you are at it, I highly recommend learning to use ADS data dictionary. It totally opens a whole new world for dbf -data security, extended field types, SQL, moving a lot of the business logic to the server side using referential integrity, data ranges, valid values, default values, triggers, stored procedures... Even for single user apps or apps used by very few users, it makes a huge difference.

If you are only using the local server, then simply upgrade to version 10 and distribute your newly linked app with version 10 ace32.dll and adslocal32.dll and take advantage of all that's new that is also available on the local server. In this case (local server), I see no need to build multiple versions, just go straight to the latest available version.

Hope that helps.

BTW -I encourage any N.America xharbour/harbour + ADS developer to make plans and come to Boise this next Oct for their next ADS summit. The product manager for ADS at Sybase has expressed interest in creating a summit just for harbour developers. He has even expressed the possibility of bringing Antonio to the summit. The problem is that I have never been able to find more than 3 developers committed to assisting. If enough of us show up, I'm sure we can capture their attention. IMHO, all they need to do is distribute each different version of rdd_ads.lib for each compiler and ads version. That alone would ease the hump of starting to use ADS with harbour.


Reinaldo.
User avatar
reinaldocrespo
 
Posts: 972
Joined: Thu Nov 17, 2005 5:49 pm
Location: Fort Lauderdale, FL

Re: ADS Versions

Postby reinaldocrespo » Tue May 22, 2012 5:43 pm

... and one last thing; Even for ADS remote server (real client-server) customers, I don't think you need to create new or different rdd_ads.lib to link with your apps. The very same old rdd_ads.lib liked with your old apps will work with thew new server .dlls. The exception would be that you are now calling some new ACE function from your apps. So again, simply distribute the new (version 10) .dlls to your customers with your same old app and it should work just fine. In short, old clients work with newer servers (but not the opposite). So if you are not planning on using any of the new ACE stuff, then keep using the same .libs as usual.


Reinaldo.
User avatar
reinaldocrespo
 
Posts: 972
Joined: Thu Nov 17, 2005 5:49 pm
Location: Fort Lauderdale, FL

Re: ADS Versions

Postby TimStone » Tue May 22, 2012 10:42 pm

Reinaldo,

My clients are scattered from ADS 7 to 9. It is not practical to do a separate build for each ace32.lib level. I do automatic updating and that would be a nightmare. Some might upgrade to 10, but 11 is now in beta. Pretty soon I lose credibility ! They can't see a difference. They pay me for upgrades to my software, but they continually see new features and enhancements.

I had an ACE32.lib that works for 7 through 9. However, apparently 10 changed the game too much.

Also, I have to include drivers for each version ( the .dll files ). In my experience, a version 9 driver will NOT work with an installed ADS 8 server. However, the updates are usually the .exe file and that is not dependent on the drivers. Once they are installed, they remain.

I would be willing to go to Boise in October.

Tim
Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
User avatar
TimStone
 
Posts: 2909
Joined: Fri Oct 07, 2005 1:45 pm
Location: Trabuco Canyon, CA USA

Re: ADS Versions

Postby reinaldocrespo » Wed May 23, 2012 12:06 am

"In my experience, a version 9 driver will NOT work with an installed ADS 8 server. "

Exactly. Newer client will not work with older server. But if you keep version 7 of the client, it will work with 7, 8, 9, 10 of the server. Again; newer client will **not** work with older server but older client WILL work with newer server.

Reinaldo.
User avatar
reinaldocrespo
 
Posts: 972
Joined: Thu Nov 17, 2005 5:49 pm
Location: Fort Lauderdale, FL

Re: ADS Versions

Postby TimStone » Wed May 23, 2012 12:14 am

So you are saying an ACE32.lib from 7 will work with any server ?

Or more to the point, my ACE32.lib that supports 7/8/9, if I couple it with the 7 .dll, should work with ADS 10 ?

I was led to believe that was not the case with 10.

Tim
Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
User avatar
TimStone
 
Posts: 2909
Joined: Fri Oct 07, 2005 1:45 pm
Location: Trabuco Canyon, CA USA

Re: ADS Versions

Postby reinaldocrespo » Wed May 23, 2012 12:38 am

This is generally true. Any older version of the client will work with any newer version of the server. With version 10 there is only one caveat -but only if you also update the client as well as the server to version 10 (I know it sounds weird). It should only affect you if you are using data dictionaries (highly recommended). Here it is from the help file:

In order to restore the previous (pre-version 10.0) behavior to your application, it is necessary to call the Advantage Client Engine API AdsSetRightsChecking. This new behavior requires the v10.0 client. Older clients are not affected by this change in behavior.

5004 Errors Opening Static Cursors from ACE 2.7/5.7 and Older Clients
Rights checking must be disabled on 5.7 and older clients when using an Advantage version 10 server. Version 10 uses a combination of data caching and temporary file handle pooling, and these technologies are not compatible with 5.7 and older clients as they attempt to verify the existence of the physical temporary file when opening a static cursor.

So again, you can change the server and never touch your app. I do it all the time.


Reinaldo.
User avatar
reinaldocrespo
 
Posts: 972
Joined: Thu Nov 17, 2005 5:49 pm
Location: Fort Lauderdale, FL


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 131 guests