From 3d905e45ce608b24d2806362432a60c6e5335383 Mon Sep 17 00:00:00 2001 From: ta264 Date: Mon, 18 Jan 2021 20:09:28 +0000 Subject: [PATCH] Log out SQL on insert/update fail also --- .../Datastore/BasicRepository.cs | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/src/NzbDrone.Core/Datastore/BasicRepository.cs b/src/NzbDrone.Core/Datastore/BasicRepository.cs index 366cda946..7c1cdc1c8 100644 --- a/src/NzbDrone.Core/Datastore/BasicRepository.cs +++ b/src/NzbDrone.Core/Datastore/BasicRepository.cs @@ -8,6 +8,7 @@ using System.Text; using Dapper; using NzbDrone.Core.Datastore.Events; using NzbDrone.Core.Messaging.Events; +using static Dapper.SqlMapper; namespace NzbDrone.Core.Datastore { @@ -173,7 +174,18 @@ namespace NzbDrone.Core.Datastore private TModel Insert(IDbConnection connection, IDbTransaction transaction, TModel model) { SqlBuilderExtensions.LogQuery(_insertSql, model); - var multi = connection.QueryMultiple(_insertSql, model, transaction); + + GridReader multi; + try + { + multi = connection.QueryMultiple(_insertSql, model, transaction); + } + catch (Exception e) + { + e.Data.Add("SQL", SqlBuilderExtensions.GetSqlLogString(_insertSql, model)); + throw; + } + var id = (int)multi.Read().First().id; _keyProperty.SetValue(model, id); @@ -367,7 +379,14 @@ namespace NzbDrone.Core.Datastore SqlBuilderExtensions.LogQuery(sql, model); - connection.Execute(sql, model, transaction: transaction); + try + { + connection.Execute(sql, model, transaction: transaction); + } + catch (Exception e) + { + e.Data.Add("SQL", SqlBuilderExtensions.GetSqlLogString(sql, model)); + } } private void UpdateFields(IDbConnection connection, IDbTransaction transaction, IList models, List propertiesToUpdate) @@ -379,7 +398,14 @@ namespace NzbDrone.Core.Datastore SqlBuilderExtensions.LogQuery(sql, model); } - connection.Execute(sql, models, transaction: transaction); + try + { + connection.Execute(sql, models, transaction: transaction); + } + catch (Exception e) + { + e.Data.Add("SQL", SqlBuilderExtensions.GetSqlLogString(sql, models)); + } } protected virtual SqlBuilder PagedBuilder() => Builder();