![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему запрос достает из блоб-поля только 32 килобайта? [D5, MSSQL 2000]
Nameless © (2002-07-29 09:53:00)см сабж
Прохожий (2002-08-02 21:45:00) [1]Акцесс дописывает свой заголовок в оле-поля
Black Cat (2002-07-30 08:34:00) [2]
> А какой смысл?
>
> Через MemoryStream быдет быстрее в 100 раз и не придётся
> файл стирать потом
Это все понятно, смысл - просто проверить, кто виноват. Вообще-то с мемористреам не должно быть проблем, уменя следующий код работает как часы:
MS := TMemoryStream.Create;
try
TBlobField(F).SaveToStream(MS);
MS.Seek(soFromBeginning, 0);
case Gr_type of
1: begin
JPG := TJPEGImage.Create;
try
JPG.LoadFromStream(MS);
P.Assign(JPG);
finally
JPG.Free;
end;
end;
2: begin
GIF := TGIFImage.Create;
try
GIF.LoadFromStream(MS);
P.Assign(GIF);
finally
GIF.Free;
end;
end;
Nameless (2002-07-29 17:20:00) [3]>Black Cat
А какой смысл?
Через MemoryStream быдет быстрее в 100 раз и не придётся файл стирать потом.
Black Cat (2002-07-29 16:05:00) [4]Именно
Nameless (2002-07-29 15:58:00) [5]>Black Cat
Вы хотите блоб-поле выгрузить в файл, а потом отобразить в Image1 с помощью LoadFromFile ?
Black Cat (2002-07-29 15:49:00) [6]И все-таки, если попробовать TBlobField(Query3.FieldByName("photo")).SaveToFile и LoadFromFile соответственно?
Nameless (2002-07-29 15:34:00) [7]>Lida
строку
Query3->FieldByName("photo")->SaveToStream(ms);
следует читать так
TBlobField(Query3.FieldByName("photo")).SaveToStream(ms);
Прошу прощения
Nameless (2002-07-29 15:28:00) [8]>Black Cat
ДА!
select datalenght(field) from table
------
3995454 - т.е. 3 мега
>Nonam
если бы это мне помогло, Вам бы не пришлось запускать BDE Administrator.
С уважением,
Nonam (2002-07-29 14:04:00) [9]Если вы работаете через BDE, то вот одна из возможных причин:
BDE Administrator -> Databases -> MS SQL. В закладке Definition имеется параметр с названием BLOB SIZE. По умолчанию он равен 32. Что дальше делать, догадываетесь?
Nonam (2002-07-29 14:01:00) [10]BDE Administrator -> Databases -> MS SQL. В закладке Definition имеется параметр с названием BLOB SIZE. По умолчанию он равен 32. Что дальше делать, догадываетесь?
Black Cat (2002-07-29 13:26:00) [11]А есть уверенность что в блобе хранится >32Кб? А если попробовать через файл?
Nameless (2002-07-29 12:46:00) [12]два дня никто не отвечал...
Вот, пожалуйста сишный вариант:
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Query3->Close();
Query3->SQL->Text = "select photo from table where id = 1 " ;
Query3->Open();
TMemoryStream *ms = new TMemoryStream;
// ms := TMemoryStream.Create;
Query3->FieldByName("photo")->SaveToStream(ms);
ms->Position = 0;
Image1->Bitmap->LoadFromStream(ms);
Query3->Close();
delete ms;
}
примерно так
Black Cat (2002-07-29 12:15:00) [13]Текст работы с Блобом глянуть можно?
ЮЮ (2002-07-29 12:12:00) [14]>у меня открываются все поля, кроме фотографий.
Что значит поле открылось? Как проявляется то,что оно не открылось?
Lida (2002-07-29 12:04:00) [15]Уважаемый Nameless!
Можно ответить вопросом на вопрос?
Надеюсь, у вас это не займет много времени,
а у меня его совсем мало, поэтому и обращаюсь
к вам.
Я создаю приложение D5, работающее с таблицами
из MSACCESS, у меня открываются все поля, кроме
фотографий. Не знаете, в чем причина?
Заранее благодарна!