Форум: "Базы";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];
ВнизПочему запрос достает из блоб-поля только 32 килобайта? Найти похожие ветки
← →
Nameless (2002-07-29 09:53) [0]см сабж
← →
Lida (2002-07-29 12:04) [1]Уважаемый Nameless!
Можно ответить вопросом на вопрос?
Надеюсь, у вас это не займет много времени,
а у меня его совсем мало, поэтому и обращаюсь
к вам.
Я создаю приложение D5, работающее с таблицами
из MSACCESS, у меня открываются все поля, кроме
фотографий. Не знаете, в чем причина?
Заранее благодарна!
← →
ЮЮ (2002-07-29 12:12) [2]>у меня открываются все поля, кроме фотографий.
Что значит поле открылось? Как проявляется то,что оно не открылось?
← →
Black Cat (2002-07-29 12:15) [3]Текст работы с Блобом глянуть можно?
← →
Nameless (2002-07-29 12:46) [4]два дня никто не отвечал...
Вот, пожалуйста сишный вариант:
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 13:26) [5]А есть уверенность что в блобе хранится >32Кб? А если попробовать через файл?
← →
Nonam (2002-07-29 14:01) [6]BDE Administrator -> Databases -> MS SQL. В закладке Definition имеется параметр с названием BLOB SIZE. По умолчанию он равен 32. Что дальше делать, догадываетесь?
← →
Nonam (2002-07-29 14:04) [7]Если вы работаете через BDE, то вот одна из возможных причин:
BDE Administrator -> Databases -> MS SQL. В закладке Definition имеется параметр с названием BLOB SIZE. По умолчанию он равен 32. Что дальше делать, догадываетесь?
← →
Nameless (2002-07-29 15:28) [8]>Black Cat
ДА!
select datalenght(field) from table
------
3995454 - т.е. 3 мега
>Nonam
если бы это мне помогло, Вам бы не пришлось запускать BDE Administrator.
С уважением,
← →
Nameless (2002-07-29 15:34) [9]>Lida
строку
Query3->FieldByName("photo")->SaveToStream(ms);
следует читать так
TBlobField(Query3.FieldByName("photo")).SaveToStream(ms);
Прошу прощения
← →
Black Cat (2002-07-29 15:49) [10]И все-таки, если попробовать TBlobField(Query3.FieldByName("photo")).SaveToFile и LoadFromFile соответственно?
← →
Nameless (2002-07-29 15:58) [11]>Black Cat
Вы хотите блоб-поле выгрузить в файл, а потом отобразить в Image1 с помощью LoadFromFile ?
← →
Black Cat (2002-07-29 16:05) [12]Именно
← →
Nameless (2002-07-29 17:20) [13]>Black Cat
А какой смысл?
Через MemoryStream быдет быстрее в 100 раз и не придётся файл стирать потом.
← →
Black Cat (2002-07-30 08:34) [14]
> А какой смысл?
>
> Через 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;
← →
Прохожий (2002-08-02 21:45) [15]Акцесс дописывает свой заголовок в оле-поля
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c