Як зберегти з DBGrid?
Шановні майстри, дайте відповідь, будь ласка, на моє запитання.
У мене ADOQuery1 з БД отримує дані, далі дані через DataSource1 передаються в DBGrid1. Чи можна якось ці дані зберегти в текстовому файлі txt? Який компонент для цього використовувати, і який код?
Ніякого компонета. Стандартна конструкція:
while not ADOQuery1.Eof do
begin
// код збереження поточної записи в текстовий файл, Write procedure (for text files) + F1
ADOQuery1.Next;
end;
var f: text; i: integer; Str: string;
begin
# XA0; AssignFile (f, "ff.txt");
# XA0; Rewrite (f);
# XA0; ADOQuery1.First;
# XA0; while not ADOQuery1.eof do
# XA0; # XA0; begin
# XA0; # XA0; # XA0; Str: = "";
# XA0; # XA0; # XA0; for i: = 0 to ADOQuery1.FieldCount do
# XA0; # XA0; # XA0; # XA0; Str: = Str + "" "+ ADOQuery1.Fields [i] .AsString;
# XA0; # XA0; # XA0; WriteLn (f, Str);
# XA0; # XA0; # XA0; ADOQuery1.Next;
# XA0; # XA0; end;
# XA0; CloseFile (f);
end;
Велике спасибі за цю раду. Але мені потрібен діалог з користувачем. Я вирішив використовувати стандартний компонент.
Ось код:
procedure TForm1.Button6Click (Sender: TObject);
var
fname: string;
begin
fname: = edit6.text;
savedialog1.filename: = fname;
if savedialog1.Execute then
# XA0; begin
# XA0; fname: = edit6.text;
# XA0; adoquery1.SaveToFile (fname);
# XA0; end;
end;
Але у мене в файл вивелися якісь крякозябрікі. Що у мене не так? І ще файл чомусь зберігся без дозволу, як зробити, щоб він з дозволом зберігався?
var f: text; i: integer; Str: string;
begin
if SaveDialog1.Execute then
# XA0; AssignFile (f, SaveDialog1.FileName);
Rewrite (f);
ADOQuery1.First;
while not ADOQuery1.eof do
# XA0; begin
# XA0; # XA0; # XA0; Str: = "";
# XA0; # XA0; # XA0; for i: = 0 to ADOQuery1.FieldCount do
# XA0; # XA0; # XA0; # XA0; Str: = Str + "" "+ ADOQuery1.Fields [i] .AsString;
# XA0; # XA0; # XA0; WriteLn (f, Str);
# XA0; # XA0; # XA0; ADOQuery1.Next;
# XA0; end;
CloseFile (f);
end;
ПОчему щось не подобається
f: text;
[Error] Unit1.pas (802): Constant or type identifier expected
З минулим питанням я розібрався сам. ))) Не треба думати, що я тупий, я вчуся.
А ось далі при компіляцію помилок не знаходить. Але коли починаю зберігати сам файл, то вилітає прога, так як знаходить помилку. Вказує ось на цю строчку
А код помилки ось
raised exception class EListError with message "List index out of bounds (3). Process stopped. Use Step or Run to continue.
Тут я вже не в змозі визначити в чому справа. Допоможіть.
for i: = 0 to ADOQuery1.FieldCount-1 do