We pretend to migrate to Windows based programs in a couple of years or more and need to keep ADS working with Clipper but unfortunately SAP discontinued the old versions of ADS. We offered them to buy new licenses but they refused to do it...figure it out...It's a calvary now to handle the licenses when we add new users.
By the way, don't you have the DISCONN.OBJ for Clipper ?
We have been using Xbase++ 1.9 and 2.0 with ADS for both OES/SLES and windows since 2013, formerly clipper/novell since 1995. Have been using version 12 in a 2 user development workstation but did not see any issues. Setup of ADS is not tricky, unless you are working in a linux environment. Only exposure to that is OES/SLES and it was fun. We have 200+ users.
We are a dealer and support directly from SAP has been somewhat OK. We only need them for somewhat tricky questions and they attempt to resolve the issue. Help with getting the OES environment initially setup was good.
We have a test server and a production server and my local drive.
No problem running off the production server because that is where ADS is installed.
Trouble we are having is running off of the Test server because that is on a different server, which we do not have ADS installed on. So we get the error message that ADS cannot see the files because they are on a server that is different than the one the EXE was started on.
You have two easy solutions. Make certain the adsloc32.dll in the folder where you ads enabled application is located and configure your ADS.INI file to use the local version. Most things should be supported, I can't recall the few things that are not.
I did this method for a long time on my development computer and some user would use this in production, though it is supposed to not have more than 10 users.
For testing purposes, the best way is to use the 2 user test version of ads. It is a full version of ADS (I don't think it would support replication), but allows 2 user so you can test your multi-user environments. Just load it on your test work station and the test server. There are versions available for ADS11 and ADS12. There is no cost for them and no license. It is in the SDK.
here is my situation:
ADS is installed on the server FoxA - when I run my production EXE from this server it works.
My testing server is called VFoxB - when I run my EXE from this server it does not work because.
In the Advantage Data Architect (ADR) when I try to create a database with the files from VFoxB I get the error: Error 5020: The path given was not valid. The path cannot be on a different server
Is there a way to have ADS/ADR have Data Dictionaries across servers?
A data dictionary cannot have files on 2 different servers. What you need to do is have a data dictionary for the files on each server. Then you create a 2nd database connection to the 2nd server and then you can access those files.
This is some code fragments. Drive G: is mapped to Server1 and drive H: is mapped to Server2. A separate ADS server is loaded on each server with its own license.
/*
This program copies the existing definition from g:\FCA\DATA to each of
the other companies
*/
#INCLUDE "AXCDXCMX.CH"
clear
oDACSession(1):SetDefault()
select 0
use fca SHARED VIA 'ADSDBE' Alias fca
select 0
use G:\aff\data\fca SHARED via 'ADSDBE' alias fcaAFF
select 0
use G:\dfs\data\fca SHARED via 'ADSDBE' alias fcaDFS
select 0
use G:\bfc\data\fca SHARED via 'ADSDBE' alias fcaBFC
oDACSession(2):SetDefault()
select 0
use H:\hg1\data\fca SHARED via 'ADSDBE' alias fcaHG1
select 0
use H:\hg2\data\fca SHARED via 'ADSDBE' alias fcaHG2
select 0
use H:\hg4\data\fca SHARED via 'ADSDBE' alias fcaHG4
select 0
use H:\afh\data\fca SHARED via 'ADSDBE' alias fcaafh
This is the modified dbesys that establishes 2 connections one to drive g: (server1) and one to drive h: (server2) The connection is only important when opening the file, they you access via the alias. You much close both connections also.
dbesys.prg (modified for 2 data connections.
// Xbase++ DatabaseEngine startup/preloader
//
// Syntax:
// DbeSys() is called automatically at program start before the
// function MAIN.
//
//////////////////////////////////////////////////////////////////////
#include "ads.ch"
#include "adsdbe.ch"
#define MSG_DBE_NOT_LOADED " database engine not loaded"
#define MSG_DBE_NOT_CREATED " database engine could not be created"
STATIC oDACSession1
STATIC oDACSession2
*******************************************************************************
* DbeSys() is always executed at program startup
*******************************************************************************
PROCEDURE dbeSys()
//
// The lHidden parameter is set to .T. for all database engines
// which will be combined to a new abstract database engine.
//
LOCAL aDbes := { { "DBFDBE", .T.},;
{ "NTXDBE", .T.},;
{ "CDXDBE", .T.},;
{ "DELDBE", .F.},;
{ "SDFDBE", .F.},;
{ "ADSDBE", .F.} }
LOCAL aBuild :={ { "DBFNTX", 1, 2 },;
{ "DBFCDX", 1, 3} }
LOCAL i
LOCAL cSession
LOCAL oThread
//
// Set the sorting order and the date format
//
SET COLLATION TO AMERICAN // changed for ADS
SET DATE TO AMERICAN
//
// load all database engines
//
FOR i:= 1 TO len(aDbes)
IF ! DbeLoad( aDbes[1], aDbes[2])
Alert( aDbes[1] + MSG_DBE_NOT_LOADED , {"OK"} )
ENDIF
NEXT i
//
// create database engines
//
FOR i:= 1 TO len(aBuild)
IF ! DbeBuild( aBuild[1], aDbes[aBuild[2]][1], aDbes[aBuild[3]][1])
Alert( aBuild[1] + MSG_DBE_NOT_CREATED , {"OK"} )
ENDIF
NEXT i
cServer := 'G:'
cServer := Upper(cServer)
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.