Varios comentarios:
- ¿Cuál es la lógica de ese tratamiento de errores?
- ¿Cuál es el sentido, de inicializar las variables Jpg y Stream?
- ¿Existen garantías de que exista datasource1.DataSet.FieldByName('logo')?
...
Este último punto, seguramente es la raíz de tu problema, primero tienes que saber si datasource1 tiene asignado un DataSet y luego si en este DataSet existe el campo ‘logo’:
Código Delphi
[-]
var
AField: TField;
begin
...
If Assigned(datasource1.DataSet) then
begin
AField := datasource1.DataSet.FieldByName('logo');
if Assigned(AField) then
...
end;
Por otro lado... ¿Seguro que no puedes acceder directamente al DataSet?
Saludos!