Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.23;
Скачать: CL | DM;

Вниз

Как сохранить из DBGrid?   Найти похожие ветки 

 
Guitar ©   (2004-12-22 10:08) [0]

Уважаемые мастера, ответьте, пожалуйста, на мой вопрос.
У меня ADOQuery1 из БД получает данные, далее данные через DataSource1 передаются в DBGrid1. Можно ли как-то эти данные сохранить в текстовом файле txt? Какой компонент для этого использовать, и какой код?


 
Соловьев ©   (2004-12-22 10:17) [1]

Никакого компонета. Стандартная конструкция:
while not ADOQuery1.Eof do
begin
//код сохранения текущей записи в текстовый файл, Write procedure (for text files) + F1
ADOQuery1.Next;
end;


 
Александр Иванов ©   (2004-12-22 10:30) [2]

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;


 
Guitar ©   (2004-12-22 10:47) [3]

Большое спасибо за этот совет. Но мне нужен диалог с пользователем. Я решил использовать стандартный компонент.
Вот код:

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:52) [4]

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 11:02) [5]

ПОчему то не нравится
f: text;

Ошибку выводит.


 
Guitar ©   (2004-12-22 11:06) [6]

Пишет.

[Error] Unit1.pas(802): Constant or type identifier expected


 
Guitar ©   (2004-12-22 11:16) [7]

С прошлым вопросом я разобрался сам. ))) Не надо думать, что я тупой, я учусь.

А вот дальше при компилляции ошибок не находит. Но когда начинаю сохранять сам файл, то вылетае прога, так как находит ошибку. Указывает вот на эту строчку

 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.

Тут я уже не в состоянии определить в чём дело. Помогите.


 
Плохиш ©   (2004-12-22 11:18) [8]

for i:=0 to ADOQuery1.FieldCount-1 do


 
Guitar ©   (2004-12-22 11:27) [9]

Да!!! КРУТО!!!



Страницы: 1 вся ветка

Текущий архив: 2005.01.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
3-1103625571
galexis
2004-12-21 13:39
2005.01.23
Ошибка Out Of Memory


1-1105085136
Erik1
2005-01-07 11:05
2005.01.23
Непонимаю, чего ненравится компилятору?


3-1103355036
Evyshka
2004-12-18 10:30
2005.01.23
Носовпадение двух символов


3-1103425616
TechnoDreamer
2004-12-19 06:06
2005.01.23
ADO, Access и пустые таблицы


4-1100098886
kaZaNoVa
2004-11-10 18:01
2005.01.23
Поток без длл или самодостаточный код