Форум: "Базы";
Текущий архив: 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.039 c