Страница 1 из 1

conversion error from string " "

Добавлено: 27 янв 2010, 04:35
DastiX
Доброго времени суток)

Совсем недавно начал изучение Firebird, по этому если что не так - не судите строго.
Собственно сабж.

Есть firebird 2.0 WI-V2.0.1.12855, работает на VMware 6.5, WinXP 32bit.
Через IBExpert созданы три таблицы: одна главная и две подчиненные.
К примеру главная ФИРМЫ и подчиненные ЛЮДИ и ТЕХНИКА.
Хочу соответственно, что бы одной строке в главной соответствовало несколько строк в подчиненной.
Т.е. в главной таблице ФИРМЫ есть поле ЛЮДИ, и поле ТЕХНИКА типа INTEGER;
Бегаем по фирмам -> отображаются только те люди и техника, которые относятся к этой фирме.
Так вот. Создаю в главной таблице два уникальных поля типа INTEGER, пытаюсь ввести данные - все ок.
В каждой подчиненной по одному полю для внешнего ключа.
Назначаю внешний ключ в таблице ЛЮДИ - все ок. Ввожу данные в поле ЛЮДИ в таблице ФИРМЫ - ок,
в IBExpert можно посмотреть через Master\Detail что определенной фирме соответствует определенный список людей.
И тут самое интересное, назначаю внешний ключ в таблице ТЕХНИКА, все прокатывает.
Но как только пытаюсь ввести данные в главной таблице, в поле ТЕХНИКА появляется ошибка
<<Overflow occurred durig data type conversion
conversion error from string " "
[00543BBF]>> хотя ввожу число.
Дальше интереснее. Удаляю из таблицы ТЕХНИКА внешний ключ(индекс) - ок.
Пытаюсь удалить ограничение на уникальность поля ТЕХНИКА в таблице ФИРМЫ, создается тразакция, все ок, нажимаю Commit,
и получаю deadlock. Хотя вроде все закрыто....
Пробую еще раз и получаю сообщение
<<This operation is not defined for system tables.
unsuccessful metadata update.
object INDEX is in use.
Changes will be rolled back...>>
После этого IBExpert зависает при закрытии, а при принудительном завершении соответственно отчет об ошибке.
Переоткрываю и удалю ограничение на уникальность...
В может быть тут дело не пойму. Откуда эта ошибка неизвестно...

Сколько уже написал, надеюсь кто-нибудь прочитает...заранее спасибо за ответы....

Re: conversion error from string " "

Добавлено: 27 янв 2010, 18:20
kdv
conversation - это общение. conversion - конверсия, конвертация. Исправил.

По сути - либо сообщение не то из-за неправильного firebird.msg (результат установки разных версий IB/ФБ на одном компе), либо действительно раньше было char/varchar, а потом поменяли на integer, или наоборот.

Если второе, то это обычно следствие модификации структуры таблиц, наполненных данными. Причем не просто модификации, а из IBExpert.
Рекомендую извлечь скрипт БД, создать из него базу по новой, причем обновить ФБ, а то 2.0.1 как то не очень, и перелить данные из старой покоцанной БД в новую.