A simple program - many errors!

We encourage new members to introduce themselves here. Get to know one another and share your interests.
User avatar
robert
Posts: 4529
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

A simple program - many errors!

Post by robert »

Thomas,

No you are not right about ADS here. ADS has an API (Called ACE Advantage Client Engine) that we are using in our RDD already. The ODBC, OLEDB and .Net Dataproviders for Advantage use the same API.
This API is very powerful.

We have done some additional research and so far have found no things that are not possible with the Advantage API.
We have opened up communication with SAP to see if we can become an Advantage OEM partner and distributor.
I am having a phone call about this with a representative from SAP next week.

If we can then nothing will stop us and we will most certainly follow this route.
We can then build the full VFP embedded SQL on top of Advantage (both with local server and remote server). We will also be able to profit from their Rushmore technology (which they call Advantage Optimized Filters).

We will then most likely also bundle an Advantage SDK with our installer so everybody will have the Advantage Local Server to develop with.

In that case we will also create a tool that converts a VFP DBC to an Advantage Dictionary.

I am not sure if we will be able to migrate hand written triggers and procedures but many of the table, field and index properties should be able to port as well as views and referential integrity rules.

And you should even be able to write stored procedures and triggers in X# !
We will provide example of this when we get there.

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
mainhatten
Posts: 200
Joined: Wed Oct 09, 2019 6:51 pm

A simple program - many errors!

Post by mainhatten »

robert wrote:No you are not right about ADS here. ADS has an API (Called ACE Advantage Client Engine) that we are using in our RDD already. The ODBC, OLEDB and .Net Dataproviders for Advantage use the same API.
This API is very powerfull.
Perhaps I was unclear, but I am not sure what I was wrong about? I know about ACE from Turbo/Dephi, but I don't think vfp has interfaced with it / a fll library for it / a class warpper for declare dll. Most examples I remember hark upon the ease of upsizing to ADS from ALS via connection string and using ALS similar to local/remote views on vfp table or cursoradapter on dbf. That is why I wrote that RDD technology is in some aspects clearly ahead of vfp tech...
We have done some additional research and so far have found no things that are not possible with the Advantage API.
We have opened up communication with SAP to see if we can become an Advantage OEM partner and distributor.
I am having a phone call about this with a representative from SAP next week.
If we can then nothing will stop us and we will most certainly follow this route.
We can then build the full VFP embedded SQL on top of Advantage (both with local server and remote server). We will also be able to profit from their Rushmore technology (which they call Advantage Optimized Filters).
Had pondered that route, as this will give a valid and well optimized SQL to local file based cursors - in comparizon the logic of buffering/tableupdate is tiny to implement. Have not checked how easy ACE makes adding to SQL - in vfp SQL we can call any function: vfp runtime, UDF or even eval() - not doable when using vfp with ADS/ALS, but with an interface talking to ACE...
We will then most likely also bundle an Advantage SDK with our installer so everybody will have the Advantage Local Server to develop with.
A win for both sides - and giving you a well performing dbf layer to compare own stuff with.
In that case we will also create a tool that converts a VFP DBC to an Advantage Dictionary.
Already exists, but stumbles on a few things not doable with vfp/ADS combo while allowed in vfp .DBC, like "dirty validation" via eval() and IIRC General fields.
I am not sure if we will be able to migrate hand written triggers and procedures but many of the table, field and index properties should be able to port as well as views and referential integrity rules.
Field validation should be doable, record validation should be looked at in any case ;-)
When all is humming, a few "standard" triggers like record sequential (which will help in smart tableupdate strategy), timestamp(s) on update/delete, last user etc will help establish sensible best practices. vfp inbuilt ref integrity is BAD.
Hentzenwerke publishes a book by Booth / Sawyer where a SQL based tiny referential rule module easy to configure is described and included in source - tiny, well adapted to vfp Rushmore performance characteristics and works much better than vfp own stuff. Jim/Janis passed away, dunno where Sawyer is - check out, probably allowed to add with xSharp. and better than starting from scratch - unless you already have well tested code.
And you should even be able to write stored procedures and triggers in X# !
We will provide example of this when we get there.
And run on Linux! Only REALLY bad thing is that on mobile (think Xamarin) and ARM (think new apple chip) that support will be missing, as they are not supported - mobile option with xSharp and Xamarin is/was big part of things luring me here...

regards
thomas
User avatar
robert
Posts: 4529
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

A simple program - many errors!

Post by robert »

mainhatten wrote:
robert wrote:No you are not right about ADS here. ADS has an API (Called ACE Advantage Client Engine) that we are using in our RDD already. The ODBC, OLEDB and .Net Dataproviders for Advantage use the same API.
This API is very powerful.
Perhaps I was unclear, but I am not sure what I was wrong about? I know about ACE from Turbo/Dephi, but I don't think vfp has interfaced with it / a fll library for it / a class warpper for declare dll. Most examples I remember hark upon the ease of upsizing to ADS from ALS via connection string and using ALS similar to local/remote views on vfp table or cursoradapter on dbf. That is why I wrote that RDD technology is in some aspects clearly ahead of vfp tech...
I was referring to this:
I think even local server (while simple ISAM) does not allow vfp-similar access in vfp but needs to be accessed via ODBC/OLEDB and then via Cursoradapter, View or SQL_Exec to a vfp-based cursor - but with >2GB added to base table if wanted. If xSharp allows such direct access, it just shows the potential of RDD concept.
You do not need ODBC/OLEDB access to use Advantage in X#.

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
FoxProMatt

A simple program - many errors!

Post by FoxProMatt »

With ADS in the mix, will a paid license be required on each client machine that runs the compiled EXE? Or does one just have to purchase a developer license of ADS one time, and it's good for all deployed client app installs?
mainhatten
Posts: 200
Joined: Wed Oct 09, 2019 6:51 pm

A simple program - many errors!

Post by mainhatten »

Seems my writing was not clear enough...
robert wrote: I was referring to this:
I think even local server (while simple ISAM) does not allow vfp-similar access in vfp but needs to be accessed via ODBC/OLEDB and then via Cursoradapter, View or SQL_Exec to a vfp-based cursor - but with >2GB added to base table if wanted. If xSharp allows such direct access, it just shows the potential of RDD concept.
You do not need ODBC/OLEDB access to use Advantage in X#.
intended was:
X# / RDD is better (embolded 2) as/if it does not need ODBC/OLEDB, which (underlined above) in vfp is the "remote-typical" mechanism to use with advantage (embolded 1).

I should write smaller and clearer sentences...
mainhatten
Posts: 200
Joined: Wed Oct 09, 2019 6:51 pm

A simple program - many errors!

Post by mainhatten »

FoxProMatt wrote:With ADS in the mix, will a paid license be required on each client machine that runs the compiled EXE? Or does one just have to purchase a developer license of ADS one time, and it's good for all deployed client app installs?
ADS needs to have a license on each client side, priced to concurrent users IIRC. ALS is/was free - but if entwined that deep into X# some form of contract / guarantee is needed, at least for the version developed against..
Developer license is no more - developer has to buy a normal license last time I checked (had only very old stuff from vfp conference, which allowed running ADS for dev for 5 users, but not in production). Pricing strategy a bit unclear to me: as there are very capable big free servers, price point determined by ease of use/deployment/no PHD needed, as "free" is hard to beat on price alone.
mainhatten
Posts: 200
Joined: Wed Oct 09, 2019 6:51 pm

A simple program - many errors!

Post by mainhatten »

robert wrote:.
We have done some additional research and so far have found no things that are not possible with the Advantage API.
We have opened up communication with SAP to see if we can become an Advantage OEM partner and distributor.
I am having a phone call about this with a representative from SAP next week.
I had not looked hard again at Advantage since I sat with Joachim after his conference sessions on Advantage 9 where they introduced vfp9 field types. At first he did not see the benefit/importance of binary index (one of the few missed items I had asked i session about)- but after describing its uses when slinging big iron data sets, binary index was added in next version and the description in help sounds more like the stuff we explained than usual descriptions found online.
I see now that by now Advantage 12 implements all the other talking points back then:
long integers unencumbed by Money decimals
record write counters: RowVersion (RowID), which IMO is the only sensible conflict check for updates (esp. in ISAM settngs, where each client might disagree with others) and ModTime as well as trying to select best index on index selectivity. They added some useful functions often with vfp-similar names like RAT() to their SQL.
Impressed I am...

So now Advantage has all my previous typical vfp pet peeves (if you add eliminating 2GB barrier and Text search) covered by now
It would be great to have that as an option for Raspi - MySQL, MariaDB and Postgres are already possible there (besides SQLite of course), but a less demanding "smaller" server like Advantage seems tailor made, and having ALS with automatic single table form on a phone would be nicer than raping Xls sheets or going SQLite - to have topics to discuss as second step ;-)

wishing you success
thomas
User avatar
wriedmann
Posts: 3756
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

A simple program - many errors!

Post by wriedmann »

Hi Robert,
as you know, I'm running several customers on ADS, and technically speaking I like it very much, as it solved many problems for me: first stability problems with many concurrent users, then fast filters, and last but not least, SQL access using both the RDD from VO and ADO.NET from X#.
Therefore I would welcome it really if your team could become a ADS partner.
But it seems that SAP does not invest any money in the product and keeps it only to earn money ( I had asked for a 2 user development server as it was available in earlier versions, and they declined it, so I had to pay for a normal 2 user server for our internal development purposes.
IMHO they have to change strategy, lowering the prices and increasing sales through the X# project, but I'm really sceptic about that (but in my experiences you were able to accomplish several "impossible" tasks). An agreement like the one GrafX had with CA about VO would be the best, I think.

Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
mainhatten
Posts: 200
Joined: Wed Oct 09, 2019 6:51 pm

A simple program - many errors!

Post by mainhatten »

Hi Wolfgang,
wriedmann wrote:But it seems that SAP does not invest any money in the product and keeps it only to earn money ( I had asked for a 2 user development server as it was available in earlier versions, and they declined it, so I had to pay for a normal 2 user server for our internal development purposes.
IMHO they have to change strategy, lowering the prices and increasing sales through the X# project, but I'm really sceptic about that (but in my experiences you were able to accomplish several "impossible" tasks). An agreement like the one GrafX had with CA about VO would be the best, I think.
Agreeing a lot - sneaky me hopes SAP realizes that growth could come from Raspi-like setups logging home data (weather, temp, heating) and similar stuff, but not if total hardware cost is below cost of singular added seats even when buying RAM loaden Raspi4 with good cooling case plus SSD or fast large Msdxc. Insert perf from different clients miles above SQLite, system load tons lighter than MySQL or Postgres. Query via cell phone needs ACE there as well... I can dream a bit, hoping they find another vision.

OTOH SAP typically aims at the other side of cost bell curve - cannot envision consultants on home networks ;-)

regards
thomas
ic2
Posts: 1858
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

A simple program - many errors!

Post by ic2 »

Hello Wolfgang,
wriedmann wrote:Hi Robert,
Therefore I would welcome it really if your team could become a ADS partner.
But it seems that SAP does not invest any money in the product and keeps it only to earn money ( I had asked for a 2 user development server as it was available in earlier versions, and they declined it, so I had to pay for a normal 2 user server for our internal development purposes.
IMHO they have to change strategy, lowering the prices and increasing sales through the X# project,
I would welcome that too. Last year we had an impossible situation: we wanted to merge ADS licenses as 3 separate customers planned to work from 1 server. That was done earlier, for free. After the usual search for anyone to help, I was in touch with someone who promised to do that for free and finally wrote he couldn't create a verification code (!) and I could only buy a new 50 user pack. On my reply that I would doubt that they could create a verification code anyway after I would have paid for a 50 user version I never got a reply, also not after multiple reminder mails. Fortunately I have solved that in another, interesting, way.

Earlier this year we needed an expansion pack. This time I found someone at SAP support who actually made some effort and found a GB distributor. Although this was done decently, it would be great if in future we can approach X#.

Even if development remains 0.....

Dick
Post Reply