Casa
Top.Mail.Ru Yandeks.Metrika
Fórum: "Bases";
Arquivo atual: 2004.02.02;
Download: [xml.tar.bz2];

Para baixo

Como salvar texto de blob em arquivo? Encontre agências semelhantes


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]

Мастера, ну подскажите, плиз. Парюсь ведь с ерундой. Вот беру пример из хелпа -

procedimento TForm1.Button1Click (Sender: TObject);

var
Stream1, Stream2 : TBlobStream;
começar
Stream1 := TBlobStream.Create(Table1Notes, bmRead);
tentar
Table2.Edit;
{ here’s a different way to create a blob stream }
Stream2 := Table2.CreateBlobStream(Table2.FieldByName("Remarks"), bmReadWrite);
tentar
Stream2.CopyFrom(Stream1, Stream1.Size);
Table2.Post;
finalmente
Stream2.Free;
end;
finalmente
Stream1.Free;

end;
end;

Делаю вроде все то же самое:

var Stream1 :TBlobStream;

começar

Stream1 := Table1.CreateBlobStream(Table1.FieldByName("HOLDERS"), bmRead);
tentar
Stream1.SaveToFile("c:\temp10.tmp");
finalmente
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 filial inteira

Fórum: "Bases";
Arquivo atual: 2004.02.02;
Download: [xml.tar.bz2];

em cima





Memória: 0.57 MB
Hora: 0.029 c
3-1998
Sercom
2004-01-08 05:39
2004.02.02
Como contar


1-2155
zamkom
2004-01-22 11:32
2004.02.02
Quando o sistema está ocupado


1-2174
Vav
2004-01-21 09:52
2004.02.02
Executando tarefas do DOS


3-2026
dimablind
2004-01-09 22:51
2004.02.02
relatório rápido e número de entradas


4-2407
Lin7
2003-11-23 20:08
2004.02.02
Alinhando ícones da área de trabalho no XP





afrikaans albanês Arabic armênio azerbaijano basco belarusian Bulgarian catalão Chinês simplificado) Chinês tradicional) croata checo dinamarquês Dutch Inglês estoniano filipino Finnish French
Galego georgiano German grego crioulo haitiano hebraico hindi húngaro islandês Indonesian irlandês Italian Japanese Korean letão lituano macedónio Malay maltês Norwegian
persa polonês Portuguese Romeno Russa sérvio Slovak esloveno Espanhol swahili sueco tailandês turco ucraniano urdu vietnamita galês ídiche bengali bósnio
cebuano esperanto gujarati hausa hmong igbo javanês kannada khmer lao latino maori marata mongol Nepali punjabi somali tâmil telugu yoruba
zulu
Английский francês Alemão Italiano Португальский russo Espanhol