0
Fixed

lib.rus.ec

Илья Агафонов 3 роки тому • оновлено Andrej Repin 3 роки тому 9

Добрый день, Андрей.

Пытаюсь произвести импорт локальной коллекции lib.rus.ec, но ничего не выходит.

Файл librusec_local_fb2.inpx импортируется с ошибкой "Could not find a book file" хотя все пути указаны.

Идем другим путем пытаемся импортировать локальную коллекцию MyHomeLib из файла librusec_local_fb2.hlc2, но ничего не выходит ошибка:


BLToolkit.Data.DataException: SQL logic error or missing database

no such collation sequence: MHL_SYSTEM_NOCASE ---> System.Data.SQLite.SQLiteException: SQL logic error or missing database
no such collation sequence: MHL_SYSTEM_NOCASE
в System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn, String strSql, SQLiteStatement previous, UInt32 timeoutMS, String& strRemain)
в System.Data.SQLite.SQLiteCommand.BuildNextCommand()
в System.Data.SQLite.SQLiteDataReader.NextResult()
в System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
в System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
в BLToolkit.Data.DbManager.<>c__DisplayClass16.<ExecuteReaderInternal>b__15()
в BLToolkit.Data.DbManager.ExecuteOperation[T](OperationType operationType, Func`1 operation)
--- Конец трассировки внутреннего стека исключений ---
в BLToolkit.Data.DbManager.OnOperationException(OperationType op, DataException ex)
в BLToolkit.Data.DbManager.ExecuteOperation[T](OperationType operationType, Func`1 operation)
в BLToolkit.Data.DbManager.BLToolkit.Data.Linq.IDataContext.ExecuteReader(Object query)
в BLToolkit.Data.Linq.Query`1.RunQuery[TE](QueryContext ctx, IDataContextInfo dataContextInfo, Expression expr, Object[] parameters, Func`6 mapper)
в BLToolkit.Data.Linq.Query`1.<>c__DisplayClass4b.<SetElementQuery>b__4a(QueryContext ctx, IDataContextInfo db, Expression expr, Object[] ps)
в BLToolkit.Data.Linq.ExpressionQuery`1.System.Linq.IQueryProvider.Execute[TResult](Expression expression)
в   ..MoveNext()
в System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
в   ..ctor(IEnumerable`1 )
в Fb2Library.ImportView.(IEnumerable`1 )
в Fb2Library.MainWindow. ..(Object , RunWorkerCompletedEventArgs )
в System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)

в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)


Как быть?

Відповідь

Відповідь

Sorry, обновление слегка подзадержалось. :)


Сейчас доступна версия 1.5.0, импорт лучше всего делать через создание новой бд (Создать -> Create from local catalog...)

Привет,


а попробуй-ка в SQLiteSpy открыть librusec_local_fb2.hlc2 и выполнить следующий запрос:


SELECT
    [x].[BookID] as [BookId],
    [a].[AuthorID] as [AuthorId],
    [g].[FB2Code],
    [x].[SeriesID] as [SeriesId],
    [sj].[SeriesTitle],
    [x].[SeqNumber],
    [a].[FirstName],
    [a].[LastName],
    [a].[MiddleName],
    [x].[Title] as [BookTitle],
    [x].[LibID] as [LibraryId],
    [x].[InsideNo] as [FileIndex],
    [x].[Folder],
    [x].[FileName],
    [x].[Ext] as [Extension],
    [x].[BookSize] as [FileSize],
    [x].[Lang]
FROM
    [Books] [x]
        INNER JOIN [Author_List] [l] ON [x].[BookID] = [l].[BookID]
        INNER JOIN [Authors] [a] ON [l].[AuthorID] = [a].[AuthorID]
        INNER JOIN [Genre_List] [gl] ON [x].[BookID] = [gl].[BookID]
        INNER JOIN [Genres] [g] ON [gl].[GenreCode] = [g].[GenreCode]
        LEFT JOIN [Series] [sj] ON [x].[SeriesID] = [sj].[SeriesID]
WHERE
    [x].[IsDeleted] = 0
ORDER BY
    [x].[BookID]


p.s. Исправить быстро не получится, т.к. build-система находится в слегка разобранном состоянии. :(


Вот и у меня получилось :(


MyHomeLib регистрирует собственные collation, например MHL_SYSTEM_NOCASE. Естественно, если не поступать так же, то при выборке по полям с custom collation будет возникать ошибка. Но у меня в программе это единственный запрос к ихней базе, и если он исполняется в SQLiteSpy без ошибок, то и в Fb2Library он должен вести себя так же.


К стати, если добавить к запросу условие, например по полю Lastname, должна вываливаться "no such collation sequence"


Буду думать...

Fixed

Исправлено, будет в следующем большом обновлении.


p.s. Если хочешь, могу сделать для тебя персональный build для тестов.


На твое усмотрение, я вообщем то не тороплюсь...

Привет, а когда обнова будет?

Відповідь

Sorry, обновление слегка подзадержалось. :)


Сейчас доступна версия 1.5.0, импорт лучше всего делать через создание новой бд (Создать -> Create from local catalog...)