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 Begin() { if (TransactionAlreadyBegun) { return; } Open(); transaction = accessor.Begin(); }
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; } }