Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];

Вниз

Как сохранить из 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.045 c
14-1105011711
msguns
2005-01-06 14:41
2005.01.23
После-пред-праздничный штиль


14-1105109952
Василий
2005-01-07 17:59
2005.01.23
нужен человек, хотя бы средне знающий Delphi


1-1105539287
Igor_thief
2005-01-12 17:14
2005.01.23
Добавление события


1-1105010379
TeNY
2005-01-06 14:19
2005.01.23
Сформировать и отправить запрос на HTTP server


1-1105137755
Oddin
2005-01-08 01:42
2005.01.23
TImage





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский