UTF8 BLOB ведет к Invalid BLOB_ID

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

UTF8 BLOB ведет к Invalid BLOB_ID

Andrei K
Добрый день,

Есть проект с бд в кодировке WIN1251. Проект на Делфи, компоненты доступа
IBX модернизированные (две транзакции на датасет. Одна на считывание,
другая на запись). Все работает как часы. Добавил поле БЛОБ
SUB_TYPE 1 CHARACTER SET UTF8. И вот с ним проблемы. Сначала читается
все нормально. Но, после обновления записи начинает кидать Invalid BLOB_ID.

Пока не было времени глубоко копать. На вскидку BLOB_ID, полученный в одной
транзакции, перестает быть валидным после обновления записи в другой транзакции.
Причем первая транзакция не трогается: как была открыта, так и открыта.

Самое главное, что меняешь в БД поле с UTF8 на CHARACTER SET WIN1251
и все начинает работать без ошибок.

Наверное я что-то упустил и UTF8 блобы по другому обрабатываются?

Андрей

--
 
---
Вы получили это сообщение, поскольку подписаны на группу gmane.comp.db.firebird.russian.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: UTF8 BLOB ведет к Invalid BLOB_ID

Alex Cherednichenko
проверь на "недопиленном" IBX.
и в isql желательно.

--

---
Вы получили это сообщение, поскольку подписаны на группу gmane.comp.db.firebird.russian.

Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: UTF8 BLOB ведет к Invalid BLOB_ID

Vlad Khorsun
In reply to this post by Andrei K
"Andrei K." ...

> Добрый день,
>
> Есть проект с бд в кодировке WIN1251. Проект на Делфи, компоненты доступа
> IBX модернизированные (две транзакции на датасет. Одна на считывание,
> другая на запись). Все работает как часы. Добавил поле БЛОБ
> SUB_TYPE 1 CHARACTER SET UTF8. И вот с ним проблемы. Сначала читается
> все нормально. Но, после обновления записи начинает кидать Invalid BLOB_ID.
>
> Пока не было времени глубоко копать. На вскидку BLOB_ID, полученный в одной
> транзакции, перестает быть валидным после обновления записи в другой
> транзакции.
> Причем первая транзакция не трогается: как была открыта, так и открыта.

    А вот тут давай подробнее:
- что получил (какой blob_id) в первой тр-ции ?
- менял ли сам блоб во второй ?
- уровень изоляции первой тр-ции ?
- есть ли after триггеры на таблицу, манипулирующие этим блобом ?
- если перечитать запись в первой тр-ции, после коммита второй тр-ции с апдейтом,
  какой вернётся blob_id ?

> Самое главное, что меняешь в БД поле с UTF8 на CHARACTER SET WIN1251
> и все начинает работать без ошибок.

    Возможно тут порылась транслитерация, но я пока что в этом не уверен.

--
Хорсун Влад

PS версия FB ?!


--

---
Вы получили это сообщение, поскольку подписаны на группу gmane.comp.db.firebird.russian.

Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.