Форум: "Базы";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
ВнизКак сохранить текст из BLOB в файл ? Найти похожие ветки
← →
WG (2004-01-08 16:57) [0]Мастера, помогите в простом вопросе - надо сохранить содержание мемо-поля из БД в текстовом файле (вообще-то надо его в Word передать, но, я так понял, проще всего снача в файл). Как использовать TBlobField.SaveToFile - не могу понять синтаксис и всё :(
Table1.FieldByName("HOLDERS").SaveToFile("c:\temp.tmp") - бред ведь ?
По форуму искал, смотрел, но ничего не понял, туплю чего-то :( Объясните по-простому.
← →
MV (2004-01-08 17:32) [1]Стандартная последовательность:
1.Открываем набор данных.
2.На базе Memo-поля создаем Stream
3.Стреам пишем в файл
4.Убиваем стреам.
5.Закрываем набор данных.
← →
WG (2004-01-08 18:48) [2]Жутко извиняюсь за назойливость, но нет ли какого конкретного примера ? Я понимаю принцип, проблемы у меня скорее с синтаксисом и увязкой объектов (постоянно то несовместимость типов, то еще что-то)...
← →
WG (2004-01-09 10:21) [3]Мастера, ну подскажите, плиз. Парюсь ведь с ерундой. Вот беру пример из хелпа -
procedure TForm1.Button1Click(Sender: TObject);
var
Stream1, Stream2 : TBlobStream;
begin
Stream1 := TBlobStream.Create(Table1Notes, bmRead);
try
Table2.Edit;
{ here’s a different way to create a blob stream }
Stream2 := Table2.CreateBlobStream(Table2.FieldByName("Remarks"), bmReadWrite);
try
Stream2.CopyFrom(Stream1, Stream1.Size);
Table2.Post;
finally
Stream2.Free;
end;
finally
Stream1.Free;
end;
end;
Делаю вроде все то же самое:
var Stream1 :TBlobStream;
begin
Stream1 := Table1.CreateBlobStream(Table1.FieldByName("HOLDERS"), bmRead);
try
Stream1.SaveToFile("c:\temp10.tmp");
finally
Stream1.Free;
end;
end;
Пишет, собака, на строке Stream1 := Table1.CreateBlobStream....:
[Error] Unit1.pas(270): Incompatible types: "TBlobStream" and "TStream"
В чем дело ? Нид хелп !!!
← →
Desdechado (2004-01-09 16:03) [4]var Stream1 :TStream;
← →
Stas (2004-01-09 16:13) [5]Ты можешь прямо к полю обратится (Если это возможно)
QueryMyField.SaveToFile ("MyFile.txt")
где QueryMyField - Blob-поле созданное в Designed time
← →
Stas (2004-01-09 16:17) [6]У меня вот так работает
TBlobField(Query.FieldByName("MyField")).SaveToFile("MyFile.txt")
← →
WG (2004-01-09 16:23) [7]Ладно, с совместимостью я разобрался, конструкция типа
var Stream1: TBlobField;
...
Stream1 := TBlobField( TBlobStream( Table1.CreateBlobStream(Table1.FieldByName("HOLDERS"), bmRead) ));
Stream1.SaveToFile("c:\temp10.tmp");
Stream1.Free;
...
...компилируется, но при выполнении прога падает. Файл temp10.tmp создается, но пустой. Я пробовал так же через TFileStream делать - FileStream.CopyFrom(Stream,0);
но при освобождении (free), файл обнуляется. Блин, уже голову сломал.
← →
WG (2004-01-09 16:28) [8]2 Stas
Й-е-е-ес ! Заработало !!! Спасибо огромное !!! Вот именно TBlobField(Query.FieldByName("MyField")).SaveToFile("MyFile.txt") мне и надо было !
← →
Romkin (2004-01-09 16:50) [9]И в Ворд мона:
var
Content: string;
v: variant;
begin
Content := FieldByName("MyField")).asString;
V := CreateOleObject("Word.Application");
V.Documents.Add();
V.Selection.TypeText(Content);
V.Visible := true;
end;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c