IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.
Модератор: kdv
-
AStranger
- Сообщения: 3
- Зарегистрирован: 07 фев 2005, 11:02
Сообщение
AStranger » 16 фев 2005, 17:35
Можно ли BLOB передавать как вх. параметр ХП ?
В FAQ написано - можно. В доке по IB7.1 - нельзя. Попробывал - не получается. Пробывал так:
Юзаю IBX в делфях.
Код: Выделить всё
sp:TStoredProc
s:TStream
....
sp.Params[0].LoadFromStream(s, ftBlob)
...
sp.Params[0].LoadFromStream(s, ftBlob);
spInsert.ExecProc; //вот здесь вылетает exception invalid BLOB ID
ХП примитивная insert into....
Если нельзя, то как обойти?
Заранее спасибо.
ЗЫ
сервер FB 1.5
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 16 фев 2005, 19:58
причина, скорее, в процедуре. что-то ты не то в ней с blob делаешь. переданный в параметрах блоб надо ЗАПИСАТЬ на диск в insert или update.
-
AStranger
- Сообщения: 3
- Зарегистрирован: 07 фев 2005, 11:02
Сообщение
AStranger » 16 фев 2005, 20:09
kdv писал(а):причина, скорее, в процедуре. что-то ты не то в ней с blob делаешь. переданный в параметрах блоб надо ЗАПИСАТЬ на диск в insert или update.
В ХП записываю в таблицу. Без всяких условий.
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 16 фев 2005, 22:05
invalid BLOB ID выскакивает только при специфическом коде в процедуре. Если текст большой, приведи хоть схематически.
Клиентская часть с blob id не имеет вообще ничего общего, то есть это сугубо серверная ошибка.
-
AStranger
- Сообщения: 3
- Зарегистрирован: 07 фев 2005, 11:02
Сообщение
AStranger » 17 фев 2005, 13:27
ХП примитивная.
Код: Выделить всё
CREATE PROCEDURE MESSAGES_I(
DATA BLOB SUB_TYPE 0 SEGMENT SIZE 64,
"Sender_ID" INTEGER,
"Priority" INTEGER)
AS
BEGIN
INSERT INTO MESSAGES (
ID,
Data,
MessageStates_ID,
Sender_ID,
Received,
Priority)
VALUES (
gen_ID(gen_main, 1), :DATA, 1, :Sender_ID, 'now', :Priority);
END
ЗЫ "invalid blob id" - это баг сервера? Или особенность? Если баг то в какой версии пофиксили(собираются пофиксить?)
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 17 фев 2005, 14:42
1. нафигачил двойных кавычек... и удобно тебе?
2. по поводу segment size читай faq
3. никакого криминала ни в процедуре ни в приведенном коде не вижу. все должно работать 100%. так что ....