![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сохранить текст из BLOB в файл ? [D5, dBase, FoxPro]
WG © (2004-01-08 16:57:00)
Мастера, помогите в простом вопросе - надо сохранить содержание мемо-поля из БД в текстовом файле (вообще-то надо его в Word передать, но, я так понял, проще всего снача в файл). Как использовать TBlobField.SaveToFile - не могу понять синтаксис и всё :(
Table1.FieldByName("HOLDERS").SaveToFile("c:\temp.tmp") - бред ведь ?
По форуму искал, смотрел, но ничего не понял, туплю чего-то :( Объясните по-простому.
Romkin (2004-01-09 16:50:00) [1]
И в Ворд мона:
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;
WG (2004-01-09 16:28:00) [2]
2 Stas
Й-е-е-ес ! Заработало !!! Спасибо огромное !!! Вот именно TBlobField(Query.FieldByName("MyField")).SaveToFile("MyFile.txt") мне и надо было !
WG (2004-01-09 16:23:00) [3]
Ладно, с совместимостью я разобрался, конструкция типа
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), файл обнуляется. Блин, уже голову сломал.
Stas (2004-01-09 16:17:00) [4]
У меня вот так работает
TBlobField(Query.FieldByName("MyField")).SaveToFile("MyFile.txt")
Stas (2004-01-09 16:13:00) [5]
Ты можешь прямо к полю обратится (Если это возможно)
QueryMyField.SaveToFile ("MyFile.txt")
где QueryMyField - Blob-поле созданное в Designed time
Desdechado (2004-01-09 16:03:00) [6]
var Stream1 :TStream;
WG (2004-01-09 10:21:00) [7]
Мастера, ну подскажите, плиз. Парюсь ведь с ерундой. Вот беру пример из хелпа -
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"
В чем дело ? Нид хелп !!!
WG (2004-01-08 18:48:00) [8]
Жутко извиняюсь за назойливость, но нет ли какого конкретного примера ? Я понимаю принцип, проблемы у меня скорее с синтаксисом и увязкой объектов (постоянно то несовместимость типов, то еще что-то)...
MV (2004-01-08 17:32:00) [9]
Стандартная последовательность:
1.Открываем набор данных.
2.На базе Memo-поля создаем Stream
3.Стреам пишем в файл
4.Убиваем стреам.
5.Закрываем набор данных.