Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
mysql + delphi API "Blob - как прочесть" (Serge) 07/09/2004 - 16:35:44
      Re: mysql + delphi API (Alec) 08/09/2004 - 09:47:28
      Re: mysql + delphi API (Валентин) 08/09/2004 - 22:31:34
      Re: да в курсе я про паскаль (Alec) 09/09/2004 - 09:29:57
      Re: mysql + delphi API (Serge) 09/09/2004 - 12:03:51
      Re: to Alec (Валентин) 09/09/2004 - 14:38:32
      Re: угу. сцепились два монстра паскалеведа)) (Alec) 09/09/2004 - 14:45:21
      Re: to Alec, Валентин (Serge) 09/09/2004 - 15:11:11
      Re: to Serge )) (Alec) 09/09/2004 - 18:00:05
      Re: to Всем )) Help (Serge) 09/09/2004 - 19:57:09
      Re: to Всем )) Help (Alec) 10/09/2004 - 14:22:35
      Re: или вот (Alec) 10/09/2004 - 14:40:03
      Re: to Alec (Serge) 10/09/2004 - 19:26:49
      Re: help (Валентин) 11/09/2004 - 17:20:31
      Re: смутное подозрение (Alec) 13/09/2004 - 10:42:02
      Re: To Alec, Валентин (Serge) 13/09/2004 - 11:20:33
      Re: или я башкой ослаб (Alec) 13/09/2004 - 11:29:06
      Re: to Alec (Serge) 13/09/2004 - 11:51:49
      Re: to Alec (Serge) 13/09/2004 - 11:57:16
      Re: help2 (Валентин) 13/09/2004 - 18:49:08
      Re: to Валентин (Serge) 14/09/2004 - 10:35:19
      Re: to Валентин (SEPrize) 26/10/2004 - 13:49:33
      Re: to Всем )) Help (Tropic.name) 02/11/2014 - 18:07:40

> Original message text:
> From: Serge - 07/09/2004 - 16:35:44
> Subject:mysql + delphi API "Blob - как прочесть"
> -----------------
> Здравствуйте!
> Работаю с c delphi API:
> Проблема - не могу скачать с Bloba картинку.
> Делаю вот так:
> if presults^.row_count>0 then
> begin
> prow:= mysql_fetch_row(presults);
> row:= prow^; //Only way I
> plengths:=mysql_fetch_lengths(presults);
> try
> Buffer := Pchar (AllocMem (plengths[0]));
> CopyMemory(Buffer,row[0],plengths[0]);
> ShowMessage(Buffer); //это для проверки, что скачал
> //дальше работаю со Stream потоком
> finally
> TempStream.Free;
> FreeMem (Buffer);
> end; //finally
> end;
> В этом коде Buffer определил, чтобы посмотреть чего туда накачал,
> а скачивается туда ТОЛЬКО первые до нула символы, остальные в row
> отсутствуют, хотя и указываю конкретную длину, используя mysql_fetch_lengths.
> Как вы поняли я начинающий поэтому просьбочка помогите с этой проблемой, жел-но код.
>
> С уважением,
> Сергей.
>
>


From: Валентин - 13/09/2004 - 18:49:08
Subject:help2
-----------------
Извини за назидательный тон, но сервер и компоненты действуют правильно,
сервер в блобах передает только несколько первых символов, по которым ты кроме идентификатора блоба можешь вычислить что лежит... или не вычислить :)
компоненты действуют тоже правильно ... блоб это не обычное поле...
оно работает так
1) при фетче в блоб попадают только идентификатор блоба с небольшим кол-вом символов, кстати если залезть в исходники TBlobField то можно увидеть сколько фетчится, но смысл в том, что блоб класс почти не задействуется при просмотре, а вот когда хочется посмотреть, то нужно куда-то stream выгрузить, тогда датасет запрашивает у сервера только это поле и облекает его в оболочку стрима, который ты можешь как из файла фетчить пока не упрешься в конец !!!
т.е. ты ничего не получишь, скопировав таким образом блоб в память... нужно объявлять стрим, а потом с ним работать, т.е. можно даже в память ничего не перекачичать, а назначить его стриму блоба и просто из него тянуть куда-то, например в твой же буфер или на диск сохранять...
кстати сам TBlobField содержит метод сохранения в файл, возьми сохрани и открой посмотри, должны быть нормальные картинки...
т.е.
получилось следующее ты пытаешься отпечатать поток в память не фетча его, это тоже самое что
select *
from mytable
limit1
а дальше нужно дофетчивать результат, а зная размер результата пытаешься в память загнять то, чего фактически ты не получаешь...

код писать не хочу, такие манипуляции поищи в королевстве Делфи
http://www.delphikingdom.ru
MySQL достаточно стандартизован и в датасетах и блобах работает также как и другие сервера, разве что заморочак дальше меньше чем у других серверов БД :)))))



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
43269



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |