@ -624,14 +624,8 @@ namespace Emby.Server.Implementations.Data
private void SaveItemsInTransaction ( IDatabaseConnection db , IEnumerable < ( BaseItem Item , List < Guid > AncestorIds , BaseItem TopParent , string UserDataKey , List < string > InheritedTags ) > tuples )
{
var statements = PrepareAll ( db , new string [ ]
{
SaveItemCommandText ,
"delete from AncestorIds where ItemId=@ItemId"
} ) ;
using ( var saveItemStatement = statements [ 0 ] )
using ( var deleteAncestorsStatement = statements [ 1 ] )
using ( var saveItemStatement = PrepareStatement ( db , SaveItemCommandText ) )
using ( var deleteAncestorsStatement = PrepareStatement ( db , "delete from AncestorIds where ItemId=@ItemId" ) )
{
var requiresReset = false ;
foreach ( var tuple in tuples )
@ -1286,15 +1280,13 @@ namespace Emby.Server.Implementations.Data
CheckDisposed ( ) ;
using ( var connection = GetConnection ( true ) )
using ( var statement = PrepareStatement ( connection , _retrieveItemColumnsSelectQuery ) )
{
using ( var statement = PrepareStatement ( connection , _retrieveItemColumnsSelectQuery ) )
{
statement . TryBind ( "@guid" , id ) ;
statement . TryBind ( "@guid" , id ) ;
foreach ( var row in statement . ExecuteQuery ( ) )
{
return GetItem ( row , new InternalItemsQuery ( ) ) ;
}
foreach ( var row in statement . ExecuteQuery ( ) )
{
return GetItem ( row , new InternalItemsQuery ( ) ) ;
}
}
@ -1972,22 +1964,19 @@ namespace Emby.Server.Implementations.Data
{
CheckDisposed ( ) ;
var chapters = new List < ChapterInfo > ( ) ;
using ( var connection = GetConnection ( true ) )
using ( var statement = PrepareStatement ( connection , "select StartPositionTicks,Name,ImagePath,ImageDateModified from " + ChaptersTableName + " where ItemId = @ItemId order by ChapterIndex asc" ) )
{
var chapters = new List < ChapterInfo > ( ) ;
statement . TryBind ( "@ItemId" , item . Id ) ;
using ( var statement = PrepareStatement ( connection , "select StartPositionTicks,Name,ImagePath,ImageDateModified from " + ChaptersTableName + " where ItemId = @ItemId order by ChapterIndex asc" ) )
foreach ( var row in statement . ExecuteQuery ( ) )
{
statement . TryBind ( "@ItemId" , item . Id ) ;
foreach ( var row in statement . ExecuteQuery ( ) )
{
chapters . Add ( GetChapter ( row , item ) ) ;
}
chapters . Add ( GetChapter ( row , item ) ) ;
}
return chapters ;
}
return chapters ;
}
/// <inheritdoc />
@ -1996,16 +1985,14 @@ namespace Emby.Server.Implementations.Data
CheckDisposed ( ) ;
using ( var connection = GetConnection ( true ) )
using ( var statement = PrepareStatement ( connection , "select StartPositionTicks,Name,ImagePath,ImageDateModified from " + ChaptersTableName + " where ItemId = @ItemId and ChapterIndex=@ChapterIndex" ) )
{
using ( var statement = PrepareStatement ( connection , "select StartPositionTicks,Name,ImagePath,ImageDateModified from " + ChaptersTableName + " where ItemId = @ItemId and ChapterIndex=@ChapterIndex" ) )
{
statement . TryBind ( "@ItemId" , item . Id ) ;
statement . TryBind ( "@ChapterIndex" , index ) ;
statement . TryBind ( "@ItemId" , item . Id ) ;
statement . TryBind ( "@ChapterIndex" , index ) ;
foreach ( var row in statement . ExecuteQuery ( ) )
{
return GetChapter ( row , item ) ;
}
foreach ( var row in statement . ExecuteQuery ( ) )
{
return GetChapter ( row , item ) ;
}
}
@ -2858,13 +2845,10 @@ namespace Emby.Server.Implementations.Data
connection . RunInTransaction (
db = >
{
var itemQueryStatement = PrepareStatement ( db , itemQuery ) ;
var totalRecordCountQueryStatement = PrepareStatement ( db , totalRecordCountQuery ) ;
if ( ! isReturningZeroItems )
{
using ( new QueryTimeLogger ( Logger , itemQuery , "GetItems.ItemQuery" ) )
using ( var statement = itemQueryStatement )
using ( var statement = PrepareStatement( db , itemQuery ) )
{
if ( EnableJoinUserData ( query ) )
{
@ -2899,7 +2883,7 @@ namespace Emby.Server.Implementations.Data
if ( query . EnableTotalRecordCount )
{
using ( new QueryTimeLogger ( Logger , totalRecordCountQuery , "GetItems.TotalRecordCount" ) )
using ( var statement = totalRecordCountQueryStatement )
using ( var statement = PrepareStatement( db , totalRecordCountQuery ) )
{
if ( EnableJoinUserData ( query ) )
{
@ -4768,22 +4752,20 @@ where AncestorIdText not null and ItemValues.Value not null and ItemValues.Type
commandText . Append ( " LIMIT " ) . Append ( query . Limit ) ;
}
var list = new List < string > ( ) ;
using ( var connection = GetConnection ( true ) )
using ( var statement = PrepareStatement ( connection , commandText . ToString ( ) ) )
{
var list = new List < string > ( ) ;
using ( var statement = PrepareStatement ( connection , commandText . ToString ( ) ) )
{
// Run this again to bind the params
GetPeopleWhereClauses ( query , statement ) ;
// Run this again to bind the params
GetPeopleWhereClauses ( query , statement ) ;
foreach ( var row in statement . ExecuteQuery ( ) )
{
list . Add ( row . GetString ( 0 ) ) ;
}
foreach ( var row in statement . ExecuteQuery ( ) )
{
list . Add ( row . GetString ( 0 ) ) ;
}
return list ;
}
return list ;
}
public List < PersonInfo > GetPeople ( InternalPeopleQuery query )
@ -4808,23 +4790,20 @@ where AncestorIdText not null and ItemValues.Value not null and ItemValues.Type
commandText + = " LIMIT " + query . Limit ;
}
var list = new List < PersonInfo > ( ) ;
using ( var connection = GetConnection ( true ) )
using ( var statement = PrepareStatement ( connection , commandText ) )
{
var list = new List < PersonInfo > ( ) ;
// Run this again to bind the params
GetPeopleWhereClauses ( query , statement ) ;
using ( var statement = PrepareStatement ( connection , commandText ) )
foreach ( var row in statement . ExecuteQuery ( ) )
{
// Run this again to bind the params
GetPeopleWhereClauses ( query , statement ) ;
foreach ( var row in statement . ExecuteQuery ( ) )
{
list . Add ( GetPerson ( row ) ) ;
}
list . Add ( GetPerson ( row ) ) ;
}
return list ;
}
return list ;
}
private List < string > GetPeopleWhereClauses ( InternalPeopleQuery query , IStatement statement )