LibRusLib
Четверг, 28.03.2024, 12:43
Приветствую Вас Гость | RSS
 
Главная ФорумРегистрацияВход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » MultiLib - Библиотекарь » Version 1.x » Обсуждение работы программы (Баги, проблемы, решения)
Обсуждение работы программы
PFNДата: Понедельник, 26.10.2015, 14:42 | Сообщение # 691
Генерал-майор
Группа: Друзья
Сообщений: 206
Репутация: 0
Статус: Offline
Здравствуйте, drserj! 
Создал я "монстра" из жанров (Либрусек + Флибуста + Старые коды) и сам ужаснулся  smile Вводить это чудовище в Вашу программу не стал, а решил попробовать в отдельной программке.

Для этого пришлось (для ускорения обработки) создать БД. Чтобы не заморачиваться с SQL-сервером использовал Access, тем более, что VStudio воспринимает *.mdb как родную.

И все вроде работало пока на ровном пути не возник "ухаб" в виде апострофа в именах авторов и файлов (у меня имя автора есть в названии файла). А так как запросы к базе реализуются на SQL, который использует одинарные кавычки, как служебные символы, а создатели книг формата Fb2 для обозначения апострофа используют все, что в голову взбредет, то начались "пляски с бубнами"...
Не поделитесь рецептом нейтрализации этой проблемы?

Спасибо!


===============================
Приказ, который может быть понят неправильно, обязательно будет понят неправильно
 
drserjДата: Понедельник, 26.10.2015, 16:15 | Сообщение # 692
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата PFN ()
Не поделитесь рецептом нейтрализации этой проблемы?

Ну, обычно экранируется обратной косой, типа \'   как-то так, вроде.... Я ж не знаю чего Вы там пытаетесь делать...

http://www.mysql.ru/docs/man/String_syntax.html


drSerj
 
PFNДата: Понедельник, 26.10.2015, 19:54 | Сообщение # 693
Генерал-майор
Группа: Друзья
Сообщений: 206
Репутация: 0
Статус: Offline
Цитата drserj ()
Я ж не знаю чего Вы там пытаетесь делать...


Да ничего особенного: при выполнении команды INSERT компилятор выдал исключение для фамилии автора типа О'Брайен. Я поискал по сети варианты решения проблемы. Кое-что нашел и попытался применить. Но при тестовом прогоне один вариант ('"О''Брайен"' - два апострофа подряд) сработал нормально, а с другой фамилией - не прокатило. Обратный слэш тоже почему-то не помогает. Хотя, может я неправильно им воспользовался...  sad Буду еще эксперементировать.
Беда в том, в разных языках подходы тоже разные. И то, что предлагается в MySQL не всегда соответствует тому, что реализует Майкрософт в своих программах.
Была надежда, что у Вас есть простой универсальный рецепт, т.к. я посмотрел в Вашей программе и там эти фамилии (с апострофами) имеются. Значит обрабатываются без проблем.

Кстати, ссылка не рабочая. Нашел нужное на этой странице: http://www.mysql.ru/docs/mysql-man-4.0-ru/reference.html#describe


===============================
Приказ, который может быть понят неправильно, обязательно будет понят неправильно
 
sergtchДата: Понедельник, 26.10.2015, 20:46 | Сообщение # 694
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Добрый вечер.


Цитата
Смотреть конкретные случаи надо. Вероятнее всего либо информация о файле отсутствует, либо ее недостаточно. А может и с самим файлом проблема. Если очень важно - пришлите файл, я попробую проанализировать причину...
 К сожалению в том виде, в каком они вызывали ошибку, их уже нет. Хотя "валидаторами" они пропускались.
Вопрос вот в чем, хорошо-бы видеть хотя-бы в общих чертах причину ошибки.


С уважением, Сергей.
 
drserjДата: Понедельник, 26.10.2015, 21:18 | Сообщение # 695
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата PFN ()
Беда в том, в разных языках подходы тоже разные. И то, что предлагается в MySQL не всегда соответствует тому, что реализует Майкрософт в своих программах.

это да, но в основном базовый SQL сходен...

Цитата PFN ()
Кстати, ссылка не рабочая


ссылка абсолютно рабочая, еще раз проверил...


drSerj
 
drserjДата: Понедельник, 26.10.2015, 21:21 | Сообщение # 696
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата sergtch ()
Вопрос вот в чем, хорошо-бы видеть хотя-бы в общих чертах причину ошибки.

Пожалуй... Вопрос только в том, чья это ошибка.... Возможно, это валидатор xml отработал (fb2 допускает вольности, которых не допускает микрософтовский xml)... А может и логическая ошибка... Плохо, что нет файла...


drSerj
 
PFNДата: Понедельник, 26.10.2015, 23:21 | Сообщение # 697
Генерал-майор
Группа: Друзья
Сообщений: 206
Репутация: 0
Статус: Offline
Цитата drserj ()
ссылка абсолютно рабочая, еще раз проверил...

Действительно, в этот раз нормально открылась. А перед этим мне 4 раза выдавало страницу 404 с предложением перейти на Главную.


===============================
Приказ, который может быть понят неправильно, обязательно будет понят неправильно
 
drserjДата: Вторник, 27.10.2015, 09:02 | Сообщение # 698
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата PFN ()
Действительно, в этот раз нормально открылась. А перед этим мне 4 раза выдавало страницу 404 с предложением перейти на Главную.

Да и ладно, может работы какие проводились...


drSerj
 
sergtchДата: Пятница, 30.10.2015, 20:15 | Сообщение # 699
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Добрый вечер.
Я все со своей локальной библиотекой :)

Вот попался файл, который выдает ошибку.
Не знаю, получиться скачать, вот ссылка: https://dl.dropboxusercontent.com/u/103902394/123.rar

Следующий вопрос, в файле есть строка доп. информации:
<custom-info info-type="fb2read-status">хх</custom-info>
Как в расширенном поиске выбрать файлы с определенным значением "хх"?

Ну и маленькое неудобство, каждый раз приходится выбирать библиотеку (в расширенном поиске), может как-то запоминать последний выбор?


С уважением, Сергей.
 
drserjДата: Пятница, 30.10.2015, 21:25 | Сообщение # 700
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата sergtch ()
Вот попался файл, который выдает ошибку.Не знаю, получиться скачать

Скачал. Действительно, ошибка. Скорее всего в одном из полей символ, который недопустим при добавлении в базу.... Более детально скажу, когда гляну отладчиком.

Цитата sergtch ()
Следующий вопрос, в файле есть строка доп. информации:<custom-info info-type="fb2read-status">хх</custom-info>Как в расширенном поиске выбрать файлы с определенным значением "хх"?


Хороший вопрос... Добавляется ли это в базу... Если добавляется - теоретически можно... Например, попробовать Дополнительная информация содержит %хх%

Цитата sergtch ()
Ну и маленькое неудобство, каждый раз приходится выбирать библиотеку (в расширенном поиске), может как-то запоминать последний выбор?


Удобство спорное... Удобно тем, у кого одна библиотека... У меня их 3... И далеко не всегда я ищу в одной и той же.... Разве-что в одном сеансе работы программы сохранить... Даже и не знаю...


drSerj
 
sergtchДата: Суббота, 31.10.2015, 13:21 | Сообщение # 701
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Добрый день.


Цитата
Хороший вопрос... Добавляется ли это в базу... Если добавляется - теоретически можно... Например, попробовать Дополнительная информация содержит %хх%
Я всякие варианты пробовал - не находит.
Я думал так: если есть такое поле, значит должна быть такая возможность.
Идея-то такая, заполнить группу "прочитано" наиболее простым способом. Добавлять поодиночке книги муторно, да и пропустить/ошибиться недолго.
Вот и подумал, найду все книги по своему тегу и добавлю в группу.

Цитата
Цитата sergtch ()Ну и маленькое неудобство, каждый раз приходится выбирать библиотеку (в расширенном поиске), может как-то запоминать последний выбор?

Удобство спорное...
 Эта мысль мне пришла, когда я пробовал разные варианты поиска. Может "галку" добавить: Помнить библиотеку или нет?


С уважением, Сергей.
 
drserjДата: Суббота, 31.10.2015, 14:03 | Сообщение # 702
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата sergtch ()
Я думал так: если есть такое поле, значит должна быть такая возможность.

Если честно - я не помню сейчас, какие именно поля идут в базу. Надо код глядеть.

Цитата sergtch ()
Может "галку" добавить: Помнить библиотеку или нет?


а на эту галку - еще одну smile Вопрос, если одна библиотека - зачем убирать галку и искать именно в ней? Что, с включенной галкой "искать во всех библиотеках" - не пашет???


drSerj
 
sergtchДата: Суббота, 31.10.2015, 17:02 | Сообщение # 703
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Добрый день.


Цитата
а на эту галку - еще одну  Вопрос, если одна библиотека - зачем убирать галку и искать именно в ней?
Ну библиотека-то не одна. Да ладно, это меня раздражало, когда мне пришлось экспериментировать с поиском. Так что это не существенно в "обычной жизни".

Вот с поиском, важнее.


С уважением, Сергей.
 
drserjДата: Суббота, 31.10.2015, 17:53 | Сообщение # 704
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата sergtch ()
Вот с поиском, важнее.

Только-что проверил. с поиском всё в порядке. Если в поле custominfo информация есть - поиском, как я описывал выше, "Дополнительная информация содержит %хх%" всё находится. Обрати внимание на то, что строка поиска должна быть ограничена символами %%
 
Прикрепления: 6263383.jpg (43.1 Kb)


drSerj
 
sergtchДата: Суббота, 31.10.2015, 18:58 | Сообщение # 705
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Действительно, до этого (%%) не додумался. Хотя тут еще одна хитрость нужна, но работает.
Спасибо.


С уважением, Сергей.
 
Форум » MultiLib - Библиотекарь » Version 1.x » Обсуждение работы программы (Баги, проблемы, решения)
Поиск:

Copyright LibRusLib © 2024