Продолжаю разбираться с СУБД/Firebird.
И возникла задача экспортировать полученный набор данных во внешний файл. Ну, предположим, для простоты, что это будет .csv.
Код, например, такой (не обращайте внимания на кривизну;)):
- Код: Выделить всё
Main.SQLQuery1.First;
for i := 1 to Main.SQLQuery1.RecordCount - 1 do
begin
s0 := Main.SQLQuery1.Fields.Fields[0].AsString;
s1 := Main.SQLQuery1.Fields.Fields[1].AsString;
s2 := Main.SQLQuery1.Fields.Fields[2].AsString;
s3 := Main.SQLQuery1.Fields.Fields[3].AsString;
s4 := Main.SQLQuery1.Fields.Fields[4].AsString;
s5 := Main.SQLQuery1.Fields.Fields[5].AsString;
s6 := Main.SQLQuery1.Fields.Fields[6].AsString;
s := s0 + ';' + s1 + ';' + s2 + ';' + s3 + ';' + s4 + ';' + s5 + ';' + s6;
WriteLn(CSVFile, s);
Main.SQLQuery1.Next;
end;
Я зашёл в тупик: экспортируется только та часть набора, которая непосредственно видна в DBGrid. Т.е. из, например, 400 записей формируются только видимые 20-30. На мой взгляд, это странно, это было бы логично, если бы я брал данные из датасета таблицы:
- Код: Выделить всё
Main.DBGrid1.DataSource.DataSet.First;
и так далее. Но ведь экспорт в данном случае происходит непосредственно из датасета? Или нет?
Почему так происходит и как с эти бороться?