Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.04.2024, 05:56
Lordeckiyya Lordeckiyya вне форума
Прохожий
 
Регистрация: 02.04.2024
Сообщения: 1
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Сохранение DBGrid в mdb или txt

Здравствуйте. Имеется подключённая БД через ADO.
Понимаю, что DBGrid носит визуальную часть и лишь выводит на экран эту самую "БД"... Но ведь её же как то можно вытащить оттуда и сохранить в том же mdb формате или хотя бы в txt формате?
Ответить с цитированием
  #2  
Старый 02.04.2024, 20:46
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А чем тебе сохранение из, что там у тебя используется, ADOQuery/ADOTable не устраивает? DBGrid действительно только отображает данные. В принципе, можно добраться и до данных в самом DBGrid, но, как мне кажется, это бестолковое занятие, все-равно доступ к данным идет через какой-то DataSet компонент, вот из него и надо сохранять.

По поводу самого сохранения, нужно понимать что надо сохранять и в каком формате. И как сконфигурирован компонент доступа к данным (есть ли скрытые поля и надо ли их сохранять,нужен ли заголовок с именами колонок и надо ли использовать имена полей или названия и т.д.)

Простой пример:
Код:
var
  sl : TStringList;
  I : Integer;
  S : String;
begin
  sl := TStringList.Create;
  try
    MyAdoQuery.First;
    While Not MyAdoQuery.Eof Do
      begin
        S := '';
        For I := 0 To MyAdoQuery.Fields.Count-1 Do
          begin
            S := S + MyAdoQuery.Fields[i].AsString;
            If I < MyAdoQuery.Fields.Count-1 then S := S + ',';
          end;
        sl.Add(S);
        MyAdoQuery.Next;
      end;
    sl.SaveToFile('export.csv');
  finally
    sl.Free;
  end;
end;
Это без проверок - в случае наличия запятой или двойных кавычек в поле сгенерированный csv файл будет некорректным.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:30.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter