Managed DBF using X# language

More
8 months 1 week ago - 8 months 1 week ago #1 by DexterZ
Managed DBF using X# language was created by DexterZ
Wazzup guys!

Been playing with X# using Managed Dbf and I'm loving it!

Managed Dbf

^ _^ Y
Kudos to X# Team
Last edit: 8 months 1 week ago by DexterZ.

Please Log in or Create an account to join the conversation.

More
8 months 1 week ago #2 by wriedmann
Replied by wriedmann on topic Managed DBF using X# language
Hi Dexter,

interesting project!

Wolfgang

Please Log in or Create an account to join the conversation.

More
8 months 1 week ago #3 by DexterZ
Replied by DexterZ on topic Managed DBF using X# language
Thank you Sir Wolfgang,

I created this project because I'm missing the per record navigation and manipulation of data under managed world most of available database engine are using Dataset only fecthed from connected database using whatever query language :lol:

By using X# and Managed Dbf in VS it looks like programming in CLIPPER 5.3 C :):)L

Please Log in or Create an account to join the conversation.

More
8 months 1 week ago #4 by wriedmann
Replied by wriedmann on topic Managed DBF using X# language
Hi Dexter,

please don't the "Sir" here - we are all in the same boat....

You should have seen that here that there is a Vulcan RDD and that the devteam plans to write their own RDD.
RDD stays per "replaceable database driver" and was introduced by late versions of Clipper (AFAIK in v5) - and in fact it is the same record based database access like your "Managed DBF".

Hopefully earlier or later the development team will present an open source DBFCDX driver for X# - otherwise many people (including myself) will not be able to move their VO applications to the .NET platform.

Wolfgang

Please Log in or Create an account to join the conversation.

More
8 months 1 week ago #5 by DexterZ
Replied by DexterZ on topic Managed DBF using X# language
[ Apology for the politeness -- can't break the habit :lol:]

Hello Wolfgang,

I'm aware that there is Alaska++, Apollo, Harbour and of cource Vulcan.Net that is using their own DBFCDX driver in their database engine, but I haven't tried any of those, because I'm still contended using VFP at that time.

Your news just make my day, can't wait for that release, hopefully it breaks the DBF file size limitation of 2GIG ^_^ Y

Dexter Z

Please Log in or Create an account to join the conversation.

More
8 months 1 week ago #6 by Chris
Replied by Chris on topic Managed DBF using X# language
Hi Dexter,

Extremely interesting indeed! Do you have it available for download, or is it still under development? I'd love to give it some test to see how well it works and additionally speed test it against the current vulcan RDD :)

Btw, not sure if you know it, but X# also has a Clipper-compatible preprocessor, so you can even use USE, SET ORDER etc commands as well, it's just a matter of creating appropriate #command statements.

Chris

XSharp Development Team
chris(at)xsharp.eu

Please Log in or Create an account to join the conversation.

More
8 months 1 week ago #7 by wriedmann
Replied by wriedmann on topic Managed DBF using X# language
Hi Dexter,

the big difference between the Win32 based RDDs and the Vulcan RDD (and later also the X# RDDs) is that they can used by any .NET language - from C#, VB.NET and any other.

There is only a wrapper class needed that knows how to deal with the xBase specific datatypes like float and date that are returned from the RDD.

Wolfgang

Please Log in or Create an account to join the conversation.

More
8 months 1 week ago #8 by DexterZ
Replied by DexterZ on topic Managed DBF using X# language
Hello Chris,

Managed Dbf is still under heavy development since I'm the only one developing the project, my own index file (ZDX) is still buggy incomplete and currently trying to replace it with a new one, but I'm already using this in production mode if my requirements doesn't need ordering or index file.

Chris I'm pretty sure it has no match to Vulcan RDD if using an index file :lol:but gathering records using LINQ without an index file I'm not sure :Pbut I'm hoping MDbf will be faster ( crossing my fingers ).

I'm very new X# and that news regarding the Clipper-compatible preprocessor is really really exiting, I believe there's no need to continue this project if X# has it's own BDFCDX engine out of the box and breaks the 2GIG table file size limitation.

Dexter Z

Please Log in or Create an account to join the conversation.

More
8 months 1 week ago #9 by DexterZ
Replied by DexterZ on topic Managed DBF using X# language
Hello Wolfgang,

That is really exiting and I think X# is the real future of xBase! the only lacking I think is some blogging tutorials and youtube X# introduction and video tutorials, I search youtube regarding X# but without a luck T_T

Dexter Z

Please Log in or Create an account to join the conversation.

More
8 months 1 week ago #10 by wriedmann
Replied by wriedmann on topic Managed DBF using X# language
Hi Dexter,

we have started recently a documentation web site: https://docs.xsharp.it - maybe this helps a bit.

It is still incomplete and needs work (and we are waiting that Google adds it to the index).

Wolfgang

Please Log in or Create an account to join the conversation.

More
8 months 1 week ago #11 by robert
Replied by robert on topic Managed DBF using X# language
Dexter,

Dexter Z wrote: [ Apology for the politeness -- can't break the habit :lol:]
Your news just make my day, can't wait for that release, hopefully it breaks the DBF file size limitation of 2GIG ^_^ Y


We can only break that limit if we use a different locking scheme. We plan to do that but of course for backward compatibility we also need to support the Clipper, VO & FoxPro locking schemes.

Robert

XSharp Development Team
The Netherlands
This email address is being protected from spambots. You need JavaScript enabled to view it.

Please Log in or Create an account to join the conversation.

More
8 months 1 week ago #12 by Chris
Replied by Chris on topic Managed DBF using X# language
Hi Dexter,

Here's a #command for USE taken (and slightly modified) from VO:
#command USE <db>     ;
     [VIA <rdd>]        ;
     [ALIAS <a>]        ;
     [<sh:SHARED>]      ;
     [<ex:EXCLUSIVE>]           ;
     [<ro:READONLY>]            ;
     [<nw:NEW>]         ;
    ;
    => DBUseArea(<.nw.>, <rdd>, <(db)>, <(a)>, iif(<.sh.> .or. <.ex.>, !<.ex.>, FALSE), <.ro.>)

You can copy/paste it in a X# app and use it like this:
FUNCTION Start() AS VOID
	USE "C:\dbf\customer.dbf" VIA "DBFCDX" ALIAS test
RETURN

FUNCTION DBUseArea(lNew AS LOGIC, cRdd AS STRING, cFileName AS STRING , cAlias AS STRING , lShared AS LOGIC , lReadOnly AS LOGIC) AS LOGIC
	? lNew , cRdd , cFileName , cAlias , lShared , lReadOnly
RETURN TRUE

it translates to a call to DBUseArea(), because that's what VO uses for (non-OOP) dbf access, but you can change it to translate into code calling your classes if you want.

I think all features of the Clipper preprocessor are now supported by X#.

Chris

XSharp Development Team
chris(at)xsharp.eu

Please Log in or Create an account to join the conversation.

More
8 months 1 week ago #13 by wriedmann
Replied by wriedmann on topic Managed DBF using X# language
Hi Chris,

I have now added a (yet to fill) topic on the preprocessor to the wiki <g>.

https://docs.xsharp.it/doku.php?id=preprocessor

Wolfgang

Please Log in or Create an account to join the conversation.

More
8 months 1 week ago #14 by DexterZ
Replied by DexterZ on topic Managed DBF using X# language
Hello Cris,


I wil try it immediately many thanks ^_^y

Dexter Z

Please Log in or Create an account to join the conversation.

More
8 months 1 week ago #15 by DexterZ
Replied by DexterZ on topic Managed DBF using X# language
Hello WolfGang,

#X Dhttps://docs.xsharp.it has been book marked, many thanks ^ _^ y

Dexter Z

Please Log in or Create an account to join the conversation.

More
8 months 1 week ago #16 by DexterZ
Replied by DexterZ on topic Managed DBF using X# language
Hello Robert,

I managed to extend the 2GIG table limitation in Managed Dbf and the TABLE is still compatible to VFP and the locking scheme is still also compatible to VFP and Managed DBF side to side as long as the table size is less than 2GIG both VFP and Managed DBF comply with Locking scheme.

The compatibility will only break if the TABLE is beyond 2GIG and Managed DBf can only use it and others will report it as not a Dbf file.

If you want to take a look on how I did it, the pleasure is mine to prepare a white paper source code and can give it you, both records accessing and locking scheme beyond 2GIG that is still compatible to others using the table with less than 2GIG of file size ^_^y

"This is one main reason IMO others are jumping to different Database in early 2000's+ because the DBF is only bound to 2GIG in file size on most DBFCDX engine"

Dexter Z

Please Log in or Create an account to join the conversation.