Project Description
DataSystem Version 1.0 beta
Created By Robert Demelo 2008-11-09 (November 9, 2008)
Gigaframe.com

DataSystem is a file based database system that is thread safe if used
properly due to it's unique utilization of the file directory structure. It is
a dynamically generated database meaning developers can either structure
it outside the application prior or just develop their app with references
to the DataSystem data and run their app with no database data and the
DataSystem will automatically create the database structure based on calls
from from within the developed system.


Benefits:
- great replacement for ASP.NET Session & ViewState variables
- data persists even after web session is long dead

Future:
- create a webservice wrapper for this system.
- implement file based data indexing
- add more data types - currently only text and binary
- implement better where clause parser

Example:

DataSystem ds = new DataSystem("c:\\data");

//ds.CreateColumn("DATABASENAME", "TABLENAME", "ROWKEY", DataSystem.DataTypes.Text);

ds.SetData("DATABASENAME", "TABLENAME", "RDEMELO", "FIRSTNAME", "Robert", Gigaframe.DataSystem.DataTypes.Text);
ds.SetData("DATABASENAME", "TABLENAME", "RDEMELO", "LASTNAME", "DeMelo", Gigaframe.DataSystem.DataTypes.Text);
ds.SetData("DATABASENAME", "TABLENAME", "RDEMELO", "PHONE", "333-333-3333", Gigaframe.DataSystem.DataTypes.Text);
ds.SetData("DATABASENAME", "TABLENAME", "RDEMELO", "STREET", "123 Road St", Gigaframe.DataSystem.DataTypes.Text);
ds.SetData("DATABASENAME", "TABLENAME", "RDEMELO", "CITY", "Toronto", Gigaframe.DataSystem.DataTypes.Text);
ds.SetData("DATABASENAME", "TABLENAME", "RDEMELO", "PROVINCE", "Ontario", Gigaframe.DataSystem.DataTypes.Text);

ds.SetData("DATABASENAME", "TABLENAME", "JSMITH", "FIRSTNAME", "John", Gigaframe.DataSystem.DataTypes.Text);
ds.SetData("DATABASENAME", "TABLENAME", "JSMITH", "LASTNAME", "Smith", Gigaframe.DataSystem.DataTypes.Text);
ds.SetData("DATABASENAME", "TABLENAME", "JSMITH", "PHONE", "416-555-5555", Gigaframe.DataSystem.DataTypes.Text);
ds.SetData("DATABASENAME", "TABLENAME", "JSMITH", "STREET", "123 Street Rd", Gigaframe.DataSystem.DataTypes.Text);
ds.SetData("DATABASENAME", "TABLENAME", "JSMITH", "CITY", "Toronto", Gigaframe.DataSystem.DataTypes.Text);
ds.SetData("DATABASENAME", "TABLENAME", "JSMITH", "PROVINCE", "Ontario", Gigaframe.DataSystem.DataTypes.Text);

textBox1.Text = (string)ds.GetData("DATABASENAME", "TABLENAME", "RDEMELO", "PHONE");

DataTable dt = ds.GetDataTable("DATABASENAME", "TABLENAME", "CITY='Toronto'", "");

dataGridView1.DataSource = dt;

//Portal Pages
ds.SetData("PORTALDB", "PAGES", "1", "TITLE", "Tab 1", Gigaframe.DataSystem.DataTypes.Text);
ds.SetData("PORTALDB", "PAGES", "2", "TITLE", "Tab 2", Gigaframe.DataSystem.DataTypes.Text);


File System Data Structure:

- DATABASENAME {dir}
-- TABLENAME {dir}
--- COLUMNS {dir}
---- COLUMNNAME {dir}
----- datatype {file}
--- ROWS {dir}
---- ROWKEY {dir}
----- COLUMNNAME {dir}
------ data {file}


Disclaimer:
NO WARRANTY. THIS SOFTWARE AND ANY SUPPLIED AND GENERATED CODE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE SOFTWARE AUTHOR OR ANY ASSOCIATED PARTIES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Last edited Nov 27, 2011 at 7:43 PM by MainframeX, version 12