Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];

Вниз

картинка BLOB в строку   Найти похожие ветки 

 
analyst   (2007-02-13 06:55) [0]

Господа, приветствую!

Может ли кто-нибудь подсказать как можно перевести изображение, хранимое в BLOB-поле БД, в строку и обратно?
Необходимо передавать картинки в виде XML файлов удаленным получателям.

Заранее спасибо за ответы!


 
Кщд ©   (2007-02-13 09:02) [1]

TBlobStream.Read


 
analyst   (2007-02-13 10:36) [2]

А допустимо ли просто читать textfield:=query1.FieldByName("blob_field").asString ?

И обратно query1.FieldByName("blob_field").asString:=textfield ?


 
Кщд ©   (2007-02-13 10:39) [3]

analyst   (13.02.07 10:36) [2]
в общем случае - нет
это же бинарные данные


 
Ega23 ©   (2007-02-13 10:52) [4]


function StreamToMSSQLStr(aStream:TStream):String;
var
i:Integer;
bb:array[0..1] of byte;
begin
Result:="NULL";
if (not Assigned(aStream)) or (aStream.Size=0) then Exit;
aStream.Position:=0;
Result:="0x";
for i:=0 to aStream.Size-1 do
 begin
  aStream.Read(bb,1);
  Result:=Result+Dec2Hex(bb[0],2);
 end;
end;


 
analyst   (2007-02-13 13:41) [5]

а что если из потока в строку переводить так?

var
 s: string;
 t: string;
 m: TMemoryStream;
begin
 s := "123";
 m := TMemoryStream.Create;
 try
   // из строки в поток
   m.WriteBuffer(PChar(s)^, Length(s));
   m.Position := 0;
   // из потока в строку
   SetLength(t, m.size);
   m.ReadBuffer(PChar(t)^, m.size);
   ShowMessage(t);
 finally
   m.Free;
 end;
end;

Ну а из потока в блоб и из блоба в поток при помощи LoadFromStream и SaveToStream


 
Правильный Вася   (2007-02-13 13:54) [6]

XML - текстовый файл, а не бинарник как картинка


 
analyst   (2007-02-13 15:03) [7]

Правильный Вася   (13.02.07 13:54) [6]:
Ценное замечание, особенно, если вопрос звучал:
"как можно перевести изображение, хранимое в BLOB-поле БД, в строку"


 
Сергей М. ©   (2007-02-13 15:33) [8]


> analyst   (13.02.07 15:03) [7]


Что, по-твоему, означает "перевести что-то там в строку" ?

То что ты хочешь в данной формулировке, "в лоб"  решается до смешного просто:

SetLength(MyStrVar, BlobStream.Size);
BlobStream.ReadBuffer(PChar(MyStrVar)^, BlobStream.Size);

Ну а для строкового hex-представления бин.данных существуют станд.ф-ции IntToHex, BinToHex - стыдно должно быть не знать существование и принцип работы оных)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.052 c
2-1176401844
ppcumax
2007-04-12 22:17
2007.04.29
Как получить HTML код страницы с помощью ClientSocket?


15-1174003131
Германн
2007-03-16 02:58
2007.04.29
Опять "футбольная тема"


3-1171338914
analyst
2007-02-13 06:55
2007.04.29
картинка BLOB в строку


2-1176100393
Riply
2007-04-09 10:33
2007.04.29
Корректная по времени уснановка Hook а.


2-1175797381
..::KraN::..
2007-04-05 22:23
2007.04.29
Красивая форма.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский