Во-первых, если BLOB поле пустое, то оно может быть Null.
Во-вторых, можно включить режим, в котором вы сначала получаете BLOB-ID, а потом по этому ID выбираете данные BLOB-поля через поток.
В принципе, к Firebird есть прекрасные примеры для работы c BLOB-полями и массивами - у меня на Си никогда трудностей не возникало.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший