![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сохранить из DBGrid? [D5, MSSQL]
Guitar © (2004-12-22 10:08:00)Уважаемые мастера, ответьте, пожалуйста, на мой вопрос.
У меня ADOQuery1 из БД получает данные, далее данные через DataSource1 передаются в DBGrid1. Можно ли как-то эти данные сохранить в текстовом файле txt? Какой компонент для этого использовать, и какой код?
Guitar (2004-12-22 11:27:00) [1]Да!!! КРУТО!!!
Плохиш (2004-12-22 11:18:00) [2]for i:=0 to ADOQuery1.FieldCount -1do
Guitar (2004-12-22 11:16:00) [3]С прошлым вопросом я разобрался сам. ))) Не надо думать, что я тупой, я учусь.
А вот дальше при компилляции ошибок не находит. Но когда начинаю сохранять сам файл, то вылетае прога, так как находит ошибку. Указывает вот на эту строчку
Str:=Str+'"'+ ADOQuery1.Fields[i].AsString;
А код ошибки вот
...raised exception class EListError with message 'List index out of bounds (3). Process stopped. Use Step or Run to continue.
Тут я уже не в состоянии определить в чём дело. Помогите.
Guitar (2004-12-22 11:06:00) [4]Пишет.
[Error] Unit1.pas(802): Constant or type identifier expected
Guitar (2004-12-22 11:02:00) [5]ПОчему то не нравится
f: text;
Ошибку выводит.
Александр Иванов (2004-12-22 10:52:00) [6]var f:text;i:integer;Str:string;
begin
if SaveDialog1.Execute then
AssignFile(f,SaveDialog1.FileName);
Rewrite(f);
ADOQuery1.First;
while not ADOQuery1.eof do
begin
Str:='';
for i:=0 to ADOQuery1.FieldCount do
Str:=Str+'"'+ ADOQuery1.Fields[i].AsString;
WriteLn(f,Str);
ADOQuery1.Next;
end;
CloseFile(f);
end;
Guitar (2004-12-22 10:47:00) [7]Большое спасибо за этот совет. Но мне нужен диалог с пользователем. Я решил использовать стандартный компонент.
Вот код:
procedure TForm1.Button6Click(Sender: TObject);;
var
fname :string;
begin
fname:=edit6.text;
savedialog1.filename:=fname;
if savedialog1.Execute then
begin
fname:=edit6.text;
adoquery1.SaveToFile(fname);
end;
end
Но у меня в файл вывелись какие-то крякозябрики. Что у меня не так? И ещё файл почемуто сохранился без разрешения, как сделать, чтобы он с разрешением сохранялся?
Александр Иванов (2004-12-22 10:30:00) [8]var f:text;i:integer;Str:string;
begin
AssignFile(f,'ff.txt');
Rewrite(f);
ADOQuery1.First;
while not ADOQuery1.eof do
begin
Str:='';
for i:=0 to ADOQuery1.FieldCount do
Str:=Str+'"'+ ADOQuery1.Fields[i].AsString;
WriteLn(f,Str);
ADOQuery1.Next;
end;
CloseFile(f);
end;
Соловьев (2004-12-22 10:17:00) [9]Никакого компонета. Стандартная конструкция:
while not ADOQuery1.Eof do
begin
//код сохранения текущей записи в текстовый файл, Write procedure (for text files) + F1
ADOQuery1.Next;
end;