![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
чтение BLOB SUB_TYPE TEXT в переменную VARCHAR в ХП [D7, FireBird 1.52]
Вольный Стрелок © (2005-02-28 18:44:00)Собственно, сабж.
Для иллюстрации - есть таблица с 2 полями: VARCHAR(30) и BLOB
Делаю в ХП:
DECLARE VARIABLE cOptValue VARCHAR( 32765 );
...
FOR SELECT opt_name, opt_value FROM Options
WHERE opt_name LIKE 'Т%'
INTO :cOptName, :cOptValue
DO
BEGIN
n = 1;
END
Компилируется замечательно, но при выполнении ругается Overflow occurred during data type conversion. Сonversion error from string "BLOB".
В чем загвоздка-то, не пойму. С поле opt_value хранятся короткиестроки. Или вообще нельзя так делать?
Johnmen (2005-03-01 12:40:00) [1]Мне они неизвестны.
Можешь сходить на sql.ru по IB/FB/YA. Там недавно был в точности такой же вопрос. Поищи... Или задай...
Вольный Стрелок (2005-03-01 12:36:00) [2]Неутешительно...
Что значит "почти совместимые"? Или да, или нет.
Но я так и не услышал - других вариантов (без UDF) нет?
Johnmen (2005-03-01 12:17:00) [3]Да-да, забыл уже про сабж...:)
В общем, длл в руки, УДФ на шею, и вперёд...
Вольный Стрелок (2005-03-01 12:10:00) [4]в сабже написано
Johnmen (2005-03-01 11:44:00) [5]А типы "почти" совместимые.
Кстати, как объявлено блоб поле ?
Вольный Стрелок (2005-03-01 11:41:00) [6]Т.е. все-таки иначе никак?
И почему тогда компилируется? Проверка типов должна же существовать на этапе компиляции...
Johnmen (2005-03-01 11:18:00) [7]Не надо городить УДФ. Возьми готовую библиотеку.
Стандартное сообщение.
Вольный Стрелок (2005-03-01 11:03:00) [8]Иначе никак? Не хочется ради одного запроса городить UDF...
И почему тогда в ошибке overflow? Какое может быть переполнение?
Johnmen (2005-03-01 09:33:00) [9]>Просто пытаюсь прочитать текстовый блоб в строковую переменную.
UDF
Вольный Стрелок (2005-02-28 19:55:00) [10]Я о клиентской программе не говорил не слова, нету ее. Ругается, видимо, сервер при выполнении ХП через IBExpert.
Вся ХП уже дана - в ней только этот FOR SELECT и все, остальное я повыкидывал, локализуя ошибку. Логика ХП здесь не важна. Просто пытаюсь прочитать текстовый блоб в строковую переменную.
А этот "недовопрос" формулируется так - почему записать из строковой переменной в поле блоб можно, а считать - вот такой болт?
Повторюсь, все происходит внутри ХП, никаких входных и выходных параметров.
DSKalugin (2005-02-28 19:20:00) [11]а что выдает ошибку? Клиентская программа или ИБЭксперт?
вообщето давай всю ХП и если ошибка в программе - кусок кода тоже
непонятно что делает вообще эта ХП и с БЛОБом в частности
Как можно дать ответ на этот недовопрос?
Вольный Стрелок (2005-02-28 18:54:00) [12]И еще одно наблюдение - в отладчике IBExpert проходит нормально. Видимо, он выполняет ХП, пооператорно передавая на сервер (т.е. отдельные команды), а результаты выборок сохраняет где-то у себя в буфере.