powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Посоветуйте инструмент для диагностики проблемы
25 сообщений из 38, страница 1 из 2
Посоветуйте инструмент для диагностики проблемы
    #39091558
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую уважаемых коллег.

Понадобилось мне тут переделать одно из своих Delphi-приложений, которое цепляется к БД FB2.5 и тащит из неё данные. Использую FIBы. Приложение должно отправить на сервер SQL-запрос и получить данные. На моей машине я развернул бэкап боевой базы, к которому и цепляюсь. Вот текст запроса:
Код: sql
1.
SELECT U_ID FROM UNITS WHERE U_NAME=:U;


Юзаю Delphi 2010 с FIB+ 7.5. Совершенно точно знаю, что строка, соответствующая условию, в базе есть. Тем не менее, компонент pFIBQuery возвращает пустой набор данных. База в кодировке UTF8, к самой базе цепляюсь с кодировкой WIN1251. При подстановке в запрос названия единицы вместо параметра также возвращается пустой НД. FlameRobin выполняет этот запрос правильно. Нужен совет: как при TCP-коннекте на одной и той же машине правильно отследить, что именно и в какой кодировке отправляется на сервер? Какой инструмент лучше для этого использовать?
Заранее благодарен.
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091562
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любезный,

в трейсе должно быть видно
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091563
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нет ли какой-то доки по использованию трейса?
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091567
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любезный,

только такая http://www.firebirdsql.org/file/documentation/release_notes/html/rlsnotes254.html#rnfb25-trace
про использование штатного инструмента

в IBE есть пункт Services->Trace And Audit.
В HQbird Performance Monitor есть собственный плагин трассировки который пишет лог в БД
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091645
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис, спасибо за информацию. Раньше я просто никогда не делал трейсы - не было необходимости. Теперь буду изучать эту тему.
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091707
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любезный,

попробуй вебинар посмотреть. Попробуй - в том смысле, что может потребоваться кодек.
http://www.ibase.ru/download/tr_web20100323.rar
и вроде смотреть его лучше через ie.
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091728
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что же мешает сделать
Код: sql
1.
Cast(:U AS VARCHAR(766) CHARACTER SET UTF8)

?
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091797
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ что же мешает сделать
Зачем? Должно работать и так. Что удивило - то же самое приложение до переделки работало правильно с тем же кодом, и переделка этот кусок не затронула.
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091799
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может потому не затронуло, что первые 127 символов utf8 совпадают с ASCII и проблемы начались как только в искомой строке стали встречаться национальные символы?
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091801
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМожет потому не затронуло, что первые 127 символов utf8 совпадают с ASCII и проблемы начались как только в искомой строке стали встречаться национальные символы?
Я об этом думал, но не подтвердилось.
Завтра займусь трассировкой. На крайняк переведу приложение на связку Lazarus+IBX от Rik - там будет UTF8 без BOM, и гемора с перекодировкой нет вообще. А у ФИБов с Delphi здесь, похоже, иногда бывают проблемы из-за разницы между UTF16 и UTF8.
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091804
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя, конечно, и так должно работать, если в БД по умолчанию или непосредственно для поля задан набор символов utf8. В этом случае сервер сам всё конвертнёт. Поле описано с типом домена? Домен не менялся через таблицы метаданных?
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091806
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любезныйк самой базе цепляюсь с кодировкой WIN1251
ЛюбезныйНа крайняк переведу приложение на связку Lazarus+IBX от Rik - там будет
UTF8 без BOM, и гемора с перекодировкой нет вообще.
Ась?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091808
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovАсь?..
Добрый вечер!
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091812
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructorДобрый вечер!
Даже трудно понять что тупее: аффтар, который объявляет серверу "щас буду совать данные в
WIN1251, а потом суёт их в UTF-8" или твои советы ему.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091815
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторАсь?..
Да, здесь есть хрень. Когда я писал первую программу с ФИБами на D2010, я долго плевался с выбором кодировки соединения, получая раз за разом Malformed string. Эксперименты показали, что при соединении с кодировкой WIN1251 проблем нет, и данные из компонентов через параметры вносились корректно и без сообщений об ошибках. Потом я много раз пытался реализовать преобразование текста в UTF8 и его передачу в ФИБы с подключением к базе с соответствующей кодировкой, но в конце концов плюнул - уж очень мудрёное у этих ФИБов нутро. А Лазарь с IBX от Rik меня в этом плане очень порадовал - там все визуальные компоненты LCL принимают текст в UTF8 напрямую, и всё это даже работает в Линуксе.
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091817
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

ага.

ЛюбезныйЮзаю Delphi 2010 с FIB+ 7.5. ... База в кодировке UTF8, к самой базе цепляюсь с кодировкой WIN1251
вот и спрашивается, действительно, какого фига указан чарсет коннекта win1251, если из юникодной дельфи и фибплюса он должен быть указан utf8?
http://www.ibase.ru/unicode_faq.html
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091824
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovДаже трудно понять что тупее: аффтар, который объявляет серверу "щас буду совать данные в
WIN1251, а потом суёт их в UTF-8" или твои советы ему.
Попробуй... Вдруг тебе будет откровение, что мои советы тупее. Острых он, по всей видимости, пока ни от кого не дождался.
Лично я считаю, что для многих простеньких приложений абсолютно нормально пихать данные в кодировке, отличной от utf8, всецело полагаясь на механизм приведения символов строки Firebird'а к символьному набору поля.
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091826
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructorЛично я считаю, что для многих простеньких приложений абсолютно
нормально пихать данные в кодировке, отличной от utf8, всецело полагаясь на механизм
приведения символов строки Firebird'а к символьному набору поля.
Ага, осталось только в компоненты доступа встроить телепатию, чтобы они догадались в какую
именно кодировку они должны преобразовать поступающий им на вход юникод, да...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091828
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь действительно есть косяк с моей стороны. Разница в кодировках, на первый взгляд, кажется тупостью, но я в свое время реально *** с этими ФИБами, цепляясь через UTF8, передавая строки и получая Malformed string. Но я уверен, что при использовании средств мониторинга задача с поиском бага и возможной правкой ФИБов на предмет корректной передачи строк в UTF8 может существенно облегчиться.
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091830
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Телепатия не нужна. В FIBPlus кодировка соединения задается через параметр соединения "lc_ctype"
У Любезного, соответственно, lc_ctype=WIN1251
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091835
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТелепатия не нужна. В FIBPlus кодировка соединения задается через параметр соединения "lc_ctype"
У Любезного, соответственно, lc_ctype=WIN1251
Но в D2010 компоненты VCL все юникоднутые и работают с UTF16. И не все компоненты доступа правильно обрабатывают эту кодировку и готовят строки к передаче на сервер.
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091838
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любезный,

поиском по этому разделу "malformed string fibplus" находится только 2 топика. В разделе Delphi - 1 топик.
Прихожу к выводу, что это глюк в конкретной версии FIBPlus.
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091840
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ FIBPlus кодировка соединения задается через параметр соединения "lc_ctype"
Не только. Там есть два способа задания кодировки соединения - через DBParams (TStrings) и через набор свойств TpFIBDatabase.ConnectParams. Как работает эта связка при задании параметров в Runtime - одному Бузаджи известно, хотя можно и сорцы поисследовать. Возможно, в этой связке могут быть какие-то косяки.
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091842
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И не только поэтому лично я предпочитаю чистый API...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091843
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПрихожу к выводу, что это глюк в конкретной версии FIBPlus.
Я тоже это предполагаю. Завтра буду ковырять. Но хотелось бы предварительно подтвердить или опровергнуть это с помощью мониторинга. Очень надеюсь, что своими правками не сломаю эти ФИБы.
...
Рейтинг: 0 / 0
25 сообщений из 38, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Посоветуйте инструмент для диагностики проблемы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]