хранить данные, динамически поступающие из базы данных - c ++ - PullRequest
0 голосов
/ 19 октября 2010

Можете ли вы дать мне представление о наилучшем способе динамического хранения данных, поступающих из базы данных. Я знаю количество столбцов раньше, поэтому я хочу динамически создать структуру данных, которая будет содержать все данные, и мне нужно реорганизовать данные, чтобы показать вывод. Одним словом - когда мы набираем запрос «выбрать * из таблицы» - результаты придут. как хранить результаты динамически. (Использование структур, карт, списков ..). Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 19 октября 2010

Массив строк (StringList в Delphi, не уверен, что у вас есть в C ++), по одной на строку, где каждая строка представляет собой строку, разделенную запятыми. Это можно легко выгрузить и прочитать в Excel в виде CSV-файла, импортированного во множество баз данных. Или XML-документ может быть лучшим. Или что-то другое. "это зависит ...."

0 голосов
/ 19 октября 2010

Есть довольно много вариантов для вас, желательно из STL. Используйте класс для хранения одной строки в объекте класса или в строке, если вы не хотите создавать объекты, если строки достаточно велики и вам не нужен доступ ко всем возвращенным строкам.

1) Использовать вектор - использовать умные указатели (shared_ptr) для создания объектов класса и помещать их в вектор. Из-за копирования, используемого в векторе, я бы использовал shared_ptr. Сортируй позже

2) Используйте карту / набор - Создание и вставка элементов могут быть дорогостоящими, если вы ищете более быстрые вставки. Посмотри, может быть, быстрее.

3) Хэш-карта - вставка и поиск времени лучше, чем карта / набор.

0 голосов
/ 19 октября 2010

В двух словах, структуры данных, которые вы используете для хранения данных, действительно зависят от ваших шаблонов использования данных. То есть:

  • Вам нужны данные просто для их вывода? Если да, зачем вообще хранить данные?
  • Если нет, будете ли вы выполнять поиск данных?
  • Важен ли порядок?
  • Будете ли вы выполнять вычисления с данными?
  • Сколько данных вам нужно будет хранить?
  • и т.д ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...