Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

BLOB в UDF [D5, Firebird]


jack128 ©   (2003-04-27 19:36:00) 

Добрый день.
В процессе разбора примера работы с BLOB полями в UDF возник такой вопрос(пример из документации к IB, сцепление BLOB"ов)
Разве выделенные строки, при удачном чтении, не приведут к зацикливанию UDF?

void blob_concatenate(Blob from1, Blob from2, Blob to)
/* Note Blob to, as final input parameter, is actually for output! */
{
char *buffer;
long length, b_length;
b_length = MAX(from1->max_seglen, from2->max_seglen);
buffer = malloc(b_length);
/* write the from1 Blob into the return Blob, to */
while ((*from1->blob_get_segment) from1->blob_handle, buffer, b_length,&length))
(*to->blob_put_segment) (to->blob_handle, buffer, length);
/* now write a delimiter as a dividing line in the blob */
(*to->blob_put_segment) (to->blob_handle, DELIMITER, sizeof(DELIMITER) - 1);
/* finally write the from2 Blob into the return Blob, to */
while ((*from2->blob_get_segment) (from2->blob_handle, buffer, b_length, &length))
}


jack128   (2003-04-27 22:53:00) [1]

поторопился :-() . Продолжние функции

(*to->blob_put_segment) (to->blob_handle, buffer, length);
/* free the memory allocated to the buffer */
free(buffer);
}


Наверх

Титульная страница Поиск, карта сайта Написать письмо