Saturday, April 29, 2017

What's wrong extending the life of Dbf file format : - D


I already know what's your thinking... You may say maybe I'm just reinventing the wheel. Why not design my own programming languages and write my own compilers for them? Or even better create my own operating system from scratch? 😄 because there are fricking hundreds if not thousands of available database projects out there in the wild which are ready to use and battle tested.

Whenever you can’t find some information you are looking for a certain applications, or a good software library but lacking some option and features you need, why not create your own? If you have the luxury of time and you believe you can do it, why bother using a third-party software or the work of others.

Alright, aside from the pleasure I get writing codes, fulfilling my enthusiasm for extending the life of DBF file format and staying close to the xBase commands in terms of data manipulation; has given me a great deal of enjoyment particularly in the learning process, these already are greenlight indications that I should keep continuing what I’m doing.

Imagine without any heavy weight database engine or anything to be installed on ones computer but yet you can create a fast, multiuser and easy record manipulation even in billions of records.



C# Using Managed Dbf :


// Create table free instance
var _CUSTOMER = new MDb.Table();

// Open Dbf file in shared mode and read-only
_CUSTOMER.File.Open( @"\\MyServer\Fileman\Customer.Dbf",
                                       TableShare.Shared, TableAccess.ReadOnly, TableMaxSize.MaxOf16G );

// Set sort order by country + state

_CUSTOMER.Indexer.SetOrderTo("COUNTRYSTATE");




Visual FoxPro/xBase Equivalent commands :

SELECT 0

USE \\MyServer\Fileman\CUSTOMER.Dbf  SHARED NOUPDATE

SET ORDER TO COUNRYSTATE




What's has been extended so far  :

* Managed Dbf can open different types of DBF file format.
     - Can open Dbf file format even with unsupported field type.

* Extended the 2GIG limitation on table size.
     - The Dbf table is still compatible if the size less than 2GIG

* Extended the field name length to 32 default value is 10
     - The Dbf table is still compatible, Managed Dbf will only created
       an extension file to store some extended information.

* Not relying on CDX Index file, Managed Dbf uses ZDX for Index file
    - Since Managed is not using and abandoning VFP Runtime, VFPOLEBD, ADO/NET, ODBC
      I created my own custom index file and called it ZDX file : - D