Довольно странно ведет себя interbase. Ситуация: есть несложная бд, есть атрибут name в таблице naprovleniya с типом varchar(100). Собственно ситуация заключается в том, что в это поле внесли значение примерно символов 105. С записью никаких проблем не возникло и еще примерно три записи успешно добавили после. Но, как только запросом попытались вытащить оттуда значение запросом, то получали ошибку:
arithmetic exception, numeric overflow, or string truncation.
Заодно валилась и связанная с этой таблица students.
пара дней поисков(ленивых, чё уж там) указывали на проблемы с кодировкой. Попытки переставлять сервера как ib, так и fb(на котором база и крутилась), менять кодировку приводили только к тому, что таблицы открывались с не киррилической кодировкой, а это кракозябры, которые никому не нужны:) Еще смущало то, что на одном компе все вполне хорошо открывалось. В итоге, не знаю почему не сразу (наверно потому что недоступны были две таблицы, а дело было в одной) добрался до одной записи, на которой и возникала ошибка, посмотрел, что действительно она слишком большая и срезал у нее все лишнее. Помогло.
Но непонимание осталось. Почему можно записать строку кириллицей и выйти за обозначенные пределы, а потом напороться на такую вот ерунду, а с латиницей я такого не получу. Спишем на непроработанность:) Заостряться на проблеме тоже не буду, при надобности можно поставить ограничение на ввод в самом клиенте, а что касается самой бд, то есть много других, которые мне более интересны:)
среда, 19 августа 2009 г.
киррилица и interbase
2009-08-19T10:23:00+09:00
Странник(ый)
проблемы|работа|
Подписаться на:
Комментарии к сообщению (Atom)