Ejemplo n.º 1
0
        private void CreateDatabase()
        {
            Close();

            if (File.Exists(dbPath))
            {
                File.Delete(dbPath);
            }
            else
            {
                Directory.CreateDirectory(Path.GetDirectoryName(dbPath));
            }

            fileDb.Create(dbPath, new Field[]
            {
                new Field(keyField, DataTypeEnum.String)
                {
                    IsPrimaryKey = true
                },
                new Field(valueField, DataTypeEnum.Byte)
                {
                    IsArray = true
                },
                new Field(expiresField, DataTypeEnum.DateTime)
            });

            Debug.WriteLine("FileDbCache: Created database " + dbPath);
        }
Ejemplo n.º 2
0
        public void CreateDb()
        {

            FileDb _db = new FileDb();

            Field field;
            var fields = new List<Field>(20);
            field = new Field("ID", DataTypeEnum.Int32);
            field.AutoIncStart = 0;
            field.IsPrimaryKey = true;
            fields.Add(field);
            field = new Field("FirstName", DataTypeEnum.String);
            fields.Add(field);
            field = new Field("LastName", DataTypeEnum.String);
            fields.Add(field);
            field = new Field("BirthDate", DataTypeEnum.DateTime);
            fields.Add(field);
            field = new Field("IsCitizen", DataTypeEnum.Bool);
            fields.Add(field);
            field = new Field("DoubleField", DataTypeEnum.Double);
            fields.Add(field);
            field = new Field("ByteField", DataTypeEnum.Byte);
            fields.Add(field);

            // array types
            field = new Field("StringArrayField", DataTypeEnum.String);
            field.IsArray = true;
            fields.Add(field);
            field = new Field("ByteArrayField", DataTypeEnum.Byte);
            field.IsArray = true;
            fields.Add(field);
            field = new Field("IntArrayField", DataTypeEnum.Int32);
            field.IsArray = true;
            fields.Add(field);
            field = new Field("DoubleArrayField", DataTypeEnum.Double);
            field.IsArray = true;
            fields.Add(field);
            field = new Field("DateTimeArrayField", DataTypeEnum.DateTime);
            field.IsArray = true;
            fields.Add(field);
            field = new Field("BoolArrayField", DataTypeEnum.Bool);
            field.IsArray = true;
            fields.Add(field);
            _db.Create(DBFILE, fields.ToArray());

            _db.Dispose();
        }
Ejemplo n.º 3
0
        public void CreateDb()
        {
            FileDb _db = new FileDb();

            Field field;
            var   fields = new List <Field>(20);

            field = new Field("ID", DataTypeEnum.Int32);
            field.AutoIncStart = 0;
            field.IsPrimaryKey = true;
            fields.Add(field);
            field = new Field("FirstName", DataTypeEnum.String);
            fields.Add(field);
            field = new Field("LastName", DataTypeEnum.String);
            fields.Add(field);
            field = new Field("BirthDate", DataTypeEnum.DateTime);
            fields.Add(field);
            field = new Field("IsCitizen", DataTypeEnum.Bool);
            fields.Add(field);
            field = new Field("DoubleField", DataTypeEnum.Double);
            fields.Add(field);
            field = new Field("ByteField", DataTypeEnum.Byte);
            fields.Add(field);

            // array types
            field         = new Field("StringArrayField", DataTypeEnum.String);
            field.IsArray = true;
            fields.Add(field);
            field         = new Field("ByteArrayField", DataTypeEnum.Byte);
            field.IsArray = true;
            fields.Add(field);
            field         = new Field("IntArrayField", DataTypeEnum.Int32);
            field.IsArray = true;
            fields.Add(field);
            field         = new Field("DoubleArrayField", DataTypeEnum.Double);
            field.IsArray = true;
            fields.Add(field);
            field         = new Field("DateTimeArrayField", DataTypeEnum.DateTime);
            field.IsArray = true;
            fields.Add(field);
            field         = new Field("BoolArrayField", DataTypeEnum.Bool);
            field.IsArray = true;
            fields.Add(field);
            _db.Create(DBFILE, fields.ToArray());

            _db.Dispose();
        }
Ejemplo n.º 4
0
        private async Task CreateDatabase()
        {
            Close();

            var file = await folder.CreateFileAsync(name, CreationCollisionOption.ReplaceExisting);

            var stream = await file.OpenAsync(FileAccessMode.ReadWrite);

            fileDb.Create(stream.AsStream(), new Field[]
            {
                new Field(keyField, DataTypeEnum.String)
                {
                    IsPrimaryKey = true
                },
                new Field(valueField, DataTypeEnum.Byte)
                {
                    IsArray = true
                },
                new Field(expiresField, DataTypeEnum.DateTime)
            });

            Debug.WriteLine("FileDbCache: Created database " + file.Path);
        }
Ejemplo n.º 5
0
        private void Open(string path)
        {
            try
            {
                fileDb.Open(path);
                Debug.WriteLine("FileDbCache: Opened database " + path);

                Clean();
            }
            catch
            {
                if (File.Exists(path))
                {
                    File.Delete(path);
                }
                else
                {
                    Directory.CreateDirectory(Path.GetDirectoryName(path));
                }

                fileDb.Create(path, new Field[]
                {
                    new Field(keyField, DataTypeEnum.String)
                    {
                        IsPrimaryKey = true
                    },
                    new Field(valueField, DataTypeEnum.Byte)
                    {
                        IsArray = true
                    },
                    new Field(expiresField, DataTypeEnum.DateTime)
                });

                Debug.WriteLine("FileDbCache: Created database " + path);
            }
        }
Ejemplo n.º 6
0
        private void CreateAnOpenDataBaseFile()
        {
            FileDb booksDb = new FileDb();
            Field  field;
            var    fieldLst = new List <Field>(20);

            field = new Field("ID", DataTypeEnum.Int32)
            {
                AutoIncStart = 0,
                IsPrimaryKey = true
            };
            fieldLst.Add(field);
            field = new Field("AuthorsName", DataTypeEnum.String);
            fieldLst.Add(field);
            field = new Field("Age", DataTypeEnum.String);
            fieldLst.Add(field);
            field = new Field("Title", DataTypeEnum.String);
            fieldLst.Add(field);
            field = new Field("Mvp", DataTypeEnum.String);
            fieldLst.Add(field);

            booksDb.Create("Books.fdb", fieldLst.ToArray());
            booksDb.Close();
        }
Ejemplo n.º 7
0
        private void BtnCreate_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                // set AutoFlush Off to improve performance for bulk operations
                _db.AutoFlush = false;
#if true
                // Add records using the project XML file

                Stream s = this.GetType().Assembly.GetManifestResourceStream(this.GetType(), "data.xml");
                string xml;
                using (StreamReader reader = new StreamReader(s))
                {
                    xml = reader.ReadToEnd();
                }

                XDocument xmlDoc = XDocument.Parse(xml);

                // find the columns
                var fields = from col in xmlDoc.Descendants("field")
                             select new
                {
                    name         = col.Attribute("name"),
                    type         = col.Attribute("type"),
                    isPrimaryKey = col.Attribute("isPrimaryKey"),
                    isArray      = col.Attribute("isArray"),
                    autoIncStart = col.Attribute("autoIncStart")
                };

                Field field;
                var   fieldLst = new List <Field>(20);

                foreach (var col in fields)
                {
                    string name       = (string)col.name,
                             type     = (string)col.type;
                    bool isPrimaryKey = col.isPrimaryKey == null ? false : (bool)col.isPrimaryKey,
                         isArray      = col.isArray == null ? false : (bool)col.isArray;
                    int autoIncStart  = col.autoIncStart == null ? -1 : (int)col.autoIncStart;

                    DataTypeEnum dataType = DataTypeEnum.String;

                    switch (type.ToLower())
                    {
                    case "int":
                        dataType = DataTypeEnum.Int32;
                        break;

                    case "uint":
                        dataType = DataTypeEnum.UInt32;
                        break;

                    case "string":
                        dataType = DataTypeEnum.String;
                        break;

                    case "datetime":
                        dataType = DataTypeEnum.DateTime;
                        break;

                    case "bool":
                        dataType = DataTypeEnum.Bool;
                        break;

                    case "float":
                        dataType = DataTypeEnum.Float;
                        break;

                    case "double":
                        dataType = DataTypeEnum.Double;
                        break;

                    case "byte":
                        dataType = DataTypeEnum.Byte;
                        break;
                    }

                    field = new Field(name, dataType);
                    field.IsPrimaryKey = isPrimaryKey;
                    field.IsArray      = isArray;
                    if (autoIncStart > -1)
                    {
                        field.AutoIncStart = autoIncStart;
                    }

                    fieldLst.Add(field);
                }
#else
                var   fieldLst = new List <Field>(20);
                Field field    = new Field("ID", DataTypeEnum.Int32);
                field.AutoIncStart = 0;
                field.IsPrimaryKey = true;
                fieldLst.Add(field);
                field = new Field("FirstName", DataTypeEnum.String);
                //field.IsPrimaryKey = true;
                fieldLst.Add(field);
                field = new Field("LastName", DataTypeEnum.String);
                fieldLst.Add(field);
                field = new Field("BirthDate", DataTypeEnum.DateTime);
                fieldLst.Add(field);
                field = new Field("IsCitizen", DataTypeEnum.Bool);
                fieldLst.Add(field);
                field = new Field("Float", DataTypeEnum.Float);
                fieldLst.Add(field);
                field = new Field("Byte", DataTypeEnum.Byte);
                fieldLst.Add(field);

                // array types
                field         = new Field("StringArray", DataTypeEnum.String);
                field.IsArray = true;
                fieldLst.Add(field);
                field         = new Field("ByteArray", DataTypeEnum.Byte);
                field.IsArray = true;
                fieldLst.Add(field);
                field         = new Field("IntArray", DataTypeEnum.Int32);
                field.IsArray = true;
                fieldLst.Add(field);
                field         = new Field("FloatArray", DataTypeEnum.Float);
                field.IsArray = true;
                fieldLst.Add(field);
                field         = new Field("DateTimeArray", DataTypeEnum.DateTime);
                field.IsArray = true;
                fieldLst.Add(field);
                field         = new Field("BoolArray", DataTypeEnum.Bool);
                field.IsArray = true;
                fieldLst.Add(field);
#endif

                _db.Create(StrDbName, fieldLst.ToArray());
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                // set AutoFlush back On
                _db.AutoFlush = true;
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Showcase what we can do with FileDBNs [everything not in yet]
        /// </summary>
        public void CreateDBExample()
        {
            if (!Directory.Exists(Directory.GetCurrentDirectory() + "\\DB\\"))
            {
                Directory.CreateDirectory(Directory.GetCurrentDirectory() + "\\DB\\");
            }
            DB.Create(Names.Issue2Test, new [] {
                new Field("TestID", DataTypeEnum.Int32)
                {
                    AutoIncStart = 1, IsPrimaryKey = true
                },
                new Field("TestName", DataTypeEnum.String)
            });

            var test = new SQLObject()
            {
                Name = Names.Issue2Test
            };

            test.AddRecord(DB, (new Issue2Test()
            {
                TestName = "Taz"
            }).Value());

            // DEBUG HERE TO SEE THE RETURN.
            var result = DB.SelectRecords <Issue2Test>("TestName = 'Taz'").FirstOrDefault <Issue2Test>();

            DB.Close();

            DB.Create(Names.Issue2Test2, new[] {
                new Field("Test2ID", DataTypeEnum.Int32)
                {
                    AutoIncStart = 1, IsPrimaryKey = true
                },
                new Field("TestID", DataTypeEnum.Int32),
                new Field("TestProfession", DataTypeEnum.String)
            });

            test = new SQLObject()
            {
                Name = Names.Issue2Test2
            };
            test.AddRecord(DB, (new Issue2Test2()
            {
                TestID = result.TestID, TestProfession = "MY PROFESSION?!?!? Code monkey."
            }).Value());
            DB.Close();

            // Now lets 'pretend' we need some data on the fly.
            DB.Open(Names.Issue2Test2, true);

            // We stil have Taz (result) from earlier.
            var tazProfession = DB.SelectRecords <Issue2Test2>(string.Format("TestID = {0}", result.TestID))
                                .FirstOrDefault <Issue2Test2>();

            DB.Close();

            // confirmation
            MessageBox.Show(tazProfession.TestProfession);

            //: Potential of SQLObject
            test = new SQLObject()
            {
                Name = Names.Issue2Test
            };

            //: Get our table
            var table = test.GetInfoByID(DB, tazProfession.TestID);

            //: consider making a wrapper for this, writing this everywhere could get sloppy.
            if (table.Count > 0)
            {
                //: We have rows in JSON format
                foreach (var record in table)
                {
                    //: You can have a foreach ( value in record )
                    MessageBox.Show(record.Data.ToString());
                }
            }
        }
Ejemplo n.º 9
0
        void create( String fileName )
        {
            // Database schema:
            // ID  ParentID  Name  Type  Value  Values

            Field field;
            List<Field> fieldLst = new List<Field>( 10 );

            field = new Field( StrID, DataTypeEnum.Int );
            field.AutoIncStart = 0;
            field.IsPrimaryKey = true;
            fieldLst.Add( field );

            field = new Field( StrParentID, DataTypeEnum.Int );
            fieldLst.Add( field );

            field = new Field( StrName, DataTypeEnum.String );
            fieldLst.Add( field );

            field = new Field( StrType, DataTypeEnum.Int );
            fieldLst.Add( field );

            field = new Field( StrDataType, DataTypeEnum.Int );
            fieldLst.Add( field );

            field = new Field( StrValue, DataTypeEnum.String );
            fieldLst.Add( field );

            field = new Field( StrValues, DataTypeEnum.String );
            field.IsArray = true;
            fieldLst.Add( field );

            _db = new FileDb();
            _db.Create( fileName, fieldLst.ToArray() );

            FieldValues fieldValues = new FieldValues(3);
            fieldValues.Add( StrParentID, (Int32) (-1) );
            fieldValues.Add( StrName, "LocalMachine" );
            fieldValues.Add( StrType, (Int32) KeyValueType.Key );
            fieldValues.Add( StrDataType, (Int32) ConfigDbDataType.String );
            _db.AddRecord( fieldValues );

            fieldValues = new FieldValues(3);
            fieldValues.Add( StrParentID, (Int32) (-1) );
            fieldValues.Add( StrName, "CurrentUser" );
            fieldValues.Add( StrType, (Int32) KeyValueType.Key );
            fieldValues.Add( StrDataType, (Int32) ConfigDbDataType.String );
            _db.AddRecord( fieldValues );
        }