Страница 1 из 1
conversion error from string "BLOB"
Добавлено: 31 мар 2008, 13:53
kmi
Создаю таблицу в IB 6.5:
Код: Выделить всё
CREATE TABLE SCR_USER (
ID INTEGER NOT NULL,
NAME VARCHAR(32) NOT NULL,
PSWORD BLOB SUB_TYPE 1 SEGMENT SIZE 80 NOT NULL
);
Затем пытаюсь засунуть в нее данные:
Код: Выделить всё
INSERT
INTO SCR_USER (
ID,
NAME,
PSWORD
)
VALUES (
1,
'admin',
'21232F297A57A5A743894A0E4A801FC3'
);
Получаю неприятность:
Код: Выделить всё
Overflow occurred during data type conversion.
conversion error from string "BLOB".
В чем проблема? В Firebird 1.5 все работает...
Re: conversion error from string "BLOB"
Добавлено: 31 мар 2008, 14:01
stix-s
kmi писал(а):
Создаю таблицу в IB 6.5:
В чем проблема? В Firebird 1.5 все работает...
Ну, с блобами вообще-то ч/з потоки работают, следовало бы воспользоваться поиском
а по поводу различий IB 6.5 - Firebird 1.5 явно отправят читать резизноты по требуемым серверам.
Добавлено: 31 мар 2008, 14:15
kdv
В чем проблема?
относительно InterBase: присваивать блобу строку можно только в IB 2007, если не ошибаюсь.
В 6.5 такой экзотики и не намечалось.
Добавлено: 31 мар 2008, 14:41
kmi
Спасибо
Добавлено: 01 апр 2008, 10:53
kmi
Проблема не решается.
Даже если разрешаю BLOB-полю иметь пустое значение и пишу запрос
Код: Выделить всё
INSERT
INTO SCR_USER (
ID,
NAME
)
VALUES (
1,
'admin'
);
получаю ту же ошибку. При чем тут строка "BLOB", вообще не ясно. По идее, запрос должен привести к созданию записи с пустым значением BLOB-поля.
Добавлено: 01 апр 2008, 11:59
kdv
попробуй 2-го апреля. может триггер какой найдешь, или в IBSQLMonitor посмотришь...
Добавлено: 01 апр 2008, 12:10
kmi
kdv писал(а):попробуй 2-го апреля. может триггер какой найдешь, или в IBSQLMonitor посмотришь...
Очень смешно... Триггеров нет. Монитор возвращает уже названную ошибку при выполнении запроса.
Добавлено: 01 апр 2008, 12:41
WildSery
Из чего выполняешь запрос?
Монитор показывает именно такой запрос к серверу?
Добавлено: 01 апр 2008, 13:49
kmi
Да, монитор повторяет запрос.
Пробовал выполнять сначала из своего приложения (через ADO с использованием ODBC-драйвера от Phoenix), потом из SQL-редактора в IBExpert. Результат один и тот же.
Но если в IBExpert добавить запись прямо в таблицу, используя форму, то запись добавляется корректно. Хотя в мониторе, естественно, отображается полсотни внутренних операций с системными объектами.
Добавлено: 01 апр 2008, 14:49
WildSery
А если убрать NOT NULL с блоб-поля?
Добавлено: 01 апр 2008, 14:54
kmi
Снял (см. выше) и даже сделал запрос без указания BLOB-поля - разницы никакой

Добавлено: 01 апр 2008, 17:10
kdv
Снял (см. выше) и даже сделал запрос без указания BLOB-поля - разницы никакой
см. выше про совет попробовать 2-го апреля.
из своего приложения (через ADO с использованием ODBC-драйвера от Phoenix)
если ADO - требование задачи, то еще туда-сюда. А так вообще к IB через ADO, ODBC, и т.д... слишком кривой путь.
Добавлено: 01 апр 2008, 17:38
kmi
Согласен, что кривой. Но увы.
На самом деле, оказалось, что IB 6.5 реагирует на NOT NULL в BLOB-полях не только таблицы, куда ведется запись, но и в зависимых таблицах. Как только удалил NOT NULL во всех BLOB-полях других таблиц - заработали вставка и обновление через стримы.
Добавлено: 01 апр 2008, 18:35
Merlin
А триггеров по-прежнему нет...
Добавлено: 02 апр 2008, 10:45
kdv
А триггеров по-прежнему нет...
да и msg файл похоже не той системы, как и клиентская часть.
иначе как объяснить что
оказалось, что IB 6.5 реагирует на NOT NULL в BLOB-полях не только таблицы, куда ведется запись, но и в зависимых таблицах.
простите, но это чушь какая-то.
Добавлено: 02 апр 2008, 11:32
WildSery
kdv писал(а):простите, но это чушь какая-то.
Это не чушь, это как раз триггеры
