Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сохранить из 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо