Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.22;
Скачать: CL | DM;

Вниз

Почему запрос достает из блоб-поля только 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
1-71096
X-jedy
2002-08-09 14:24
2002.08.22
Как оптимально сделать Create и Free куче переменных TStringlist?


1-71100
Alfik
2002-08-12 19:36
2002.08.22
unitstall


4-71444
Ricks
2002-06-16 19:25
2002.08.22
Windows XP hint


1-71220
oneman
2002-08-09 11:06
2002.08.22
protected method


1-71252
Иван
2002-08-12 09:15
2002.08.22
Переменное кол-во параметров