Ejemplo n.º 1
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;
            }
        }
Ejemplo n.º 2
0
 public void Begin()
 {
     if (TransactionAlreadyBegun)
     {
         return;
     }
     Open();
     transaction = accessor.Begin();
 }
Ejemplo n.º 3
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;
            }
        }