| FireDac+PostgreSQL+bytea (blob) [сообщение #2644] | 
			Tue, 27 June 2023 23:47   | 
		 
		
			
				
				
				
					
						  
						GrigoryFomin
						 Сообщений: 91 Зарегистрирован: April 2023 
						
					 | 
					Member  | 
					 | 
		 
		 
	 | 
 
	
		Уже несколько дней воюю - документации ноль, в форумах ответа не нашел, мож слеп, подскажите плз направление. 
Нужно в bytea поле загрузить стрим. Стрим из FB вытащил, а вот засунуть - ошибка: 
 
 while not qFBPhotos.Eof do
  begin
    qPG.Active := false;
    qPG.ParamByName('PHID').AsSmallInt := qFBPhotos.FieldByName('PID').AsInteger;
    bb.Clear;
    (qFBPhotos.FieldByName('pict') as TBlobField).SaveToStream(bb);
    bb.Seek(0,0);
    qPG.ParamByName('photo').DataType:=ftBlob;
    qPG.ParamByName('photo').AsStream:=bb;
    qPG.ParamByName('phDBDATE').AsDateTime := qFBPhotos.FieldByName('DBDATE').AsDateTime;
    qPG.ExecSQL;
//И тут вылазит ошибка, которую  снизу указал
    memo1.Lines[memo1.Lines.Count-1]:='Переносится фото '+qFBPhotos.RecNo.ToString+' из '+qFBPhotos.recordcount.tostring;
    Application.ProcessMessages;
    qFBPhotos.next;
  end; 
 
First chance exception at $00007FF9B7C2CF19. Exception class EFDException with message '[FireDAC][Phys][PG]-352. Object value for [PHOTO] parameter of [ftBlob] type is not supported'.  
		
		
		
 |  
	| 
		
	 | 
 
 
 | 
	| 
		
 | 
	| 
		
 | 
	
		
		
			| Re: FireDac+PostgreSQL+bytea (blob) [сообщение #2655 является ответом на сообщение #2649] | 
			Wed, 28 June 2023 21:02   | 
		 
		
			
				
				
				
					
						  
						GrigoryFomin
						 Сообщений: 91 Зарегистрирован: April 2023 
						
					 | 
					Member  | 
					 | 
		 
		 
	 | 
 
	
		Спасибо помогло, итоговый вариант стал 
 while not qFBPhotos.Eof do
  begin
    qPG.Active := false;
    qPG.ParamByName('PHID').AsSmallInt := qFBPhotos.FieldByName('PID').AsInteger;
    bb.Clear;
    (qFBPhotos.FieldByName('pict') as TBlobField).SaveToStream(bb);
    bb.Seek(0,0);
    qPG.ParamByName('photo').LoadFromStream(bb,ftBlob);
    qPG.ParamByName('phDBDATE').AsDateTime := qFBPhotos.FieldByName('DBDATE').AsDateTime;
    qPG.ExecSQL;
    memo1.Lines[memo1.Lines.Count-1]:='Переносится фото '+qFBPhotos.RecNo.ToString+' из '+qFBPhotos.recordcount.tostring;
    Application.ProcessMessages;
    qFBPhotos.next;
  end;
 
		
		
		
 |  
	| 
		
	 | 
 
 
 |