Главная страница
    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.46 MB
Время: 0.038 c
11-1087105674
Genie
2004-06-13 09:47
2005.01.23
Работа с Internet


3-1103532135
Developerr
2004-12-20 11:42
2005.01.23
Как програмно добавить поле в базу данных?


1-1104923052
_alex_
2005-01-05 14:04
2005.01.23
Размер ScrollBar


3-1103404096
Shamansky
2004-12-19 00:08
2005.01.23
Как совместить Dbgrid и dbcheckbox


1-1105610366
first_may
2005-01-13 12:59
2005.01.23
Интерфейс IXMLDOMDocument





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский