Эту статью http://www.ibase.ru/devinfo/udf_ok.htm я
читал ещё до написания сабжевого
вопроса, в тот момент, как посмотрел
заданный здесь
http://groups.google.com.br/group/ru-http://groups.google.com.br/group/ru-firebird/browse_thread/thread/7df00e537de465eb/8dd6f8a9138e1b35?lnk=gst&q=UDF+BLOB&rnum=4#8dd6f8a9138e1b35
Константином вопрос "Подскажите про
isc_seek_blob", когда там увидел ссылку на
неё.
На мой вопрос - почему при вызове PutSegment,
аналогичному использованному в
процедуре
procedure CStringToBLOb(CString: PChar; var BLOb: TBLOb); cdecl;
export;
из этой статьи, мне выдаётся сообщение
об ошибке "Cannot update old BLOB", о котором я
написал в самом первом вопросе - там
ответа НЕТ, как ничего не говорится и о
том КАК инициализовать структуру BLOB
изнутри UDF.

То, что это делается при помощи вызова
API-функции isc_create_blob2 - я уже нашёл сам,
после того, как Shiliaev Ruslan предложил мне
самостоятельно написать функцию WriteBLOB.

Теперь осталось узнать, как получить в
UDF параметры
status_vector,
&db_handle,
&trans
для вызова API-функции isc_create_blob2
- и, думаю, всё получится.

Если кто-нибудь знает, как это сделать -
с удовольствием послушаю конкретные
рекомендации (а лучше пример).

Ответить