Example #1
0
 public void Run()
 {
     accessorFrom = new SqliteAccessor {
         DataSource = DataSourceFrom, Password = PasswordFrom
     };
     accessorFrom.Open();
     accessorTo = new SqliteAccessor {
         DataSource = DataSourceTo, Password = PasswordTo
     };
     accessorTo.Open();
     FetchTables();
     tables.ForEach(t => {
         CreateTable(t.Sql);
         if (t.HasBlob)
         {
             TransferBlob(t);
         }
         else
         {
             TransferNoBlob(t);
         }
     });
     accessorFrom.Close();
     accessorTo.Close();
 }
Example #2
0
        public static void Register(
            bool insert,
            string key,
            string value,
            List <object> tags
            )
        {
            using var accessor = new SqliteAccessor {
                      DataSource  = AppBehind.Get.DBFilePath,
                      Password    = AppBehind.Get.Password,
                      QueryString = insert ? INSERT : UPDATE
                  };
            accessor.Open();
            var transaction = accessor.Begin();

            try {
                var command = accessor.CreateCommand();
                command.Parameters.AddWithValue(@"@key", key);
                command.Parameters.AddWithValue(@"@value", value);
                accessor.Execute(command);
                StringTags.Register(accessor, key, tags);
                transaction.Commit();
            }
            catch (Exception) {
                transaction.Rollback();
                throw;
            }
        }
        public void Test1()
        {
            var sa     = new SqliteAccessor();
            var sql    = "select sqlite_version()";
            var result = sa.ExecuteQuery(sql);

            result.Count.IsNot(0);
        }
Example #4
0
        public void AddPage(SqliteAccessor accessor)
        {
            var addPage = new QueryResultView();

            addPage.Init();
            addPage.Show(accessor);
            Pager.AddPage(@"Query " + (Pager.PagesCount + 1), addPage);
        }
Example #5
0
 protected bool TableExists()
 {
     using var accessor = new SqliteAccessor {
               DataSource  = AppBehind.Get.DBFilePath,
               Password    = AppBehind.Get.Password,
               QueryString = GetQueryTableExists()
           };
     accessor.Open();
     return(0 < (long)accessor.ExecuteScalar(accessor.CreateCommand()));
 }
Example #6
0
 protected void CreateTable()
 {
     using var accessor = new SqliteAccessor {
               DataSource  = AppBehind.Get.DBFilePath,
               Password    = AppBehind.Get.Password,
               QueryString = GetQueryCreateTable()
           };
     accessor.Open();
     accessor.Execute(accessor.CreateCommand());
 }
Example #7
0
        public static void Retrieve(string key, FileStream outputStream)
        {
            using var accessor = new SqliteAccessor {
                      DataSource  = AppBehind.Get.DBFilePath,
                      Password    = AppBehind.Get.Password,
                      QueryString = SELECT_BLOB_WITH_KEY
                  };
            accessor.Open();
            var command = accessor.CreateCommand();

            command.Parameters.AddWithValue(@"@key", key);
            accessor.RetrieveBlob(command, outputStream, 0);
        }
Example #8
0
        protected List <List <object> > Query(string query, Dictionary <string, string> parameters)
        {
            using var accessor = new SqliteAccessor {
                      DataSource  = AppBehind.Get.DBFilePath,
                      Password    = AppBehind.Get.Password,
                      QueryString = query
                  };
            accessor.Open();
            var command = accessor.CreateCommand();

            parameters.ToList().ForEach(p => { command.Parameters.AddWithValue(p.Key, p.Value); });
            accessor.Execute(command);
            return(CloneQueryResult(accessor.QueryResult));
        }
Example #9
0
        public static void Register(SqliteAccessor accessor, string key, List <object> tags)
        {
            accessor.QueryString = DELETE;
            var command = accessor.CreateCommand();

            command.Parameters.AddWithValue(@"@key", key);
            accessor.Execute(command);
            accessor.QueryString = INSERT;
            command = accessor.CreateCommand();
            for (var i = 0; tags.Count > i; ++i)
            {
                command.Parameters.Clear();
                command.Parameters.AddWithValue(@"@key", key);
                command.Parameters.AddWithValue(@"@tag", tags[i].ToString());
                accessor.Execute(command);
            }
        }
Example #10
0
        public static void Register(bool insert, string newTag, string oldTag)
        {
            using var accessor = new SqliteAccessor {
                      DataSource  = AppBehind.Get.DBFilePath,
                      Password    = AppBehind.Get.Password,
                      QueryString = insert ? INSERT : UPDATE
                  };
            accessor.Open();
            var command = accessor.CreateCommand();

            command.Parameters.AddWithValue(@"@tag", newTag);
            if (!insert)
            {
                command.Parameters.AddWithValue(@"@oldTag", oldTag);
            }
            accessor.Execute(command);
        }
Example #11
0
        public static void InitializeSetting()
        {
            if (db.HasTable("setting"))
            {
                return;
            }

            var record = new Setting
            {
                RdpOption = new RdpOption(),
            };
            var sql = SqliteAccessor.GetCreateTableSQL("setting", record);

            db.ExecuteNonQuery(sql);
            db.ToDictionary(record, out var dic);
            db.Upsert("setting", dic);
        }
Example #12
0
        public static void InitializeAccount()
        {
            if (db.HasTable("account"))
            {
                return;
            }

            var record = new Account
            {
                Name     = @"administrator",
                Password = @"password",
            };
            var sql = SqliteAccessor.GetCreateTableSQL("account", record);

            db.ExecuteNonQuery(sql);
            db.ToDictionary(record, out var dic);
            db.Upsert("account", dic);
        }
 public void Show(SqliteAccessor accessor)
 {
     if (0 == accessor.QueryResultAttributes.Count || 0 == accessor.QueryResult.Count)
     {
         return;
     }
     accessor.QueryResultAttributes.ForEach(a => dataGridOperator.AddColumn(a.Item1, a.Item1));
     dataGridOperator.CreateColumns();
     accessor.QueryResult.ForEach(row => {
         var addRow = new RowEntity();
         for (var i = 0; accessor.QueryResultAttributes.Count > i; ++i)
         {
             addRow.TrySetMember(accessor.QueryResultAttributes[i].Item1,
                                 accessor.IsBlobColumn(accessor.QueryResultAttributes, i) ? @"[Blob data]" : row[i]);
         }
         dataGridOperator.AddRow(addRow);
     });
     dataGridOperator.Refresh();
 }
Example #14
0
        public static void InitializeEnvironment()
        {
            if (db.HasTable("environment"))
            {
                return;
            }

            var accounts = (IEnumerable <Account>)SelectAccounts();
            var record   = new Environment
            {
                HostName          = @"localhost",
                ConnectionAddress = @"127.0.0.1",
                OsType            = OperatingSystemType.Windows,
                AccountGuid       = accounts.First().Guid,
            };
            var sql = SqliteAccessor.GetCreateTableSQL("environment", record);

            db.ExecuteNonQuery(sql);
            db.ToDictionary(record, out var dic);
            db.Upsert("environment", dic);
        }
Example #15
0
        private void PerformQueryWholeTable(string tableName)
        {
            if (string.IsNullOrEmpty(tableName))
            {
                return;
            }
            var tableInfo = new Schema().QueryTableInfo(tableName);

            if (0 == tableInfo.Count)
            {
                return;
            }
            var query = @" SELECT " + '\n';

            query += tableInfo
                     .Select((row, index) => new { index, columnName = row[1] })
                     .Aggregate(@"",
                                (ret, item) =>
                                0 == item.index
                            ? ret + @"     " + item.columnName + @" " + '\n'
                            : ret + @"   , " + item.columnName + @" " + '\n');

            query += @" FROM " + '\n';
            query += @"     " + tableName + @" " + '\n';
            var accessor = new SqliteAccessor {
                DataSource  = AppBehind.Get.DBFilePath,
                Password    = AppBehind.Get.Password,
                QueryString = query
            };

            accessor.Open();
            accessor.Execute(accessor.CreateCommand());
            accessor.Close();
            AppBehind.Get.SetQueryString(query);
            AppBehind.Get.AddPage(accessor);
        }
Example #16
0
        public static void Register(
            bool insert,
            string key,
            string filePath,
            string fileName,
            List <object> tags
            )
        {
            using var accessor = new SqliteAccessor {
                      DataSource  = AppBehind.Get.DBFilePath,
                      Password    = AppBehind.Get.Password,
                      QueryString = insert ? INSERT : UPDATE
                  };
            accessor.Open();
            var transaction = accessor.Begin();

            try {
                var command = accessor.CreateCommand();
                command.Parameters.AddWithValue(@"@key", key);
                command.Parameters.AddWithValue(@"@fileName", fileName);
                command.Parameters.AddWithValue(@"@length", new FileInfo(filePath).Length);
                using var inputStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
                accessor.WriteBlob(
                    inputStream,
                    @"BINARY_STORAGE",
                    @"VALUE",
                    (long)accessor.ExecuteScalar(command)
                    );
                BinaryTags.Register(accessor, key, tags);
                transaction.Commit();
            }
            catch (Exception) {
                transaction.Rollback();
                throw;
            }
        }
Example #17
0
 public QueryChunk()
 {
     accessor = new SqliteAccessor {
         DataSource = AppBehind.Get.DBFilePath, Password = AppBehind.Get.Password
     };
 }