Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание Records во время работы программы [D5, D6, WinXP]


Roobee ©   (2004-12-19 07:25:00) 

Уважаемые Мастера.
Возможно ли средствами Delphi во время работы программы создать Record содержащий произвольные поля
(например считать текстовый файл содержащий строки типа ИМЯ_ПОЛЯ=ТИП_РАЗМЕР)

Field1=integer
Field2=string[32]


palva   (2004-12-19 13:01:00) [1]

Roobee ©   (19.12.04 07:25)
> ведь базы данны - и есть рекорды.
"Верной дорогой идете, товарищи" (В.И.Ленин)
Из программы вы можете создать RecordSet в ADO и использовать его как структуру данных. То есть, не имея базы данных, новый Recordset можно Open, потом создать нужные вам поля с именами и типами, создать и заполнить как угодно записи, перемещаться, пользоваться закладками, поиском, сохранить в XML - короче все операции допустимые для рекордсетов.


Sergey_Masloff   (2004-12-19 12:44:00) [2]

Roobee ©   (19.12.04 12:34) [6]
Вопрос и то что вы описываете не взаимосвязаны. Никаких новых Record в терминах паскаля в базах данных не создается а добавляются новые экземпляры существующих строго определенных типов в хранилище метаданных.
 Скажем есть жестко определенный тип "таблицы" с полями "ID","имя таблицы","флаги". Есть жестко определенный тип "поля таблиц" с полями "ID таблицы", "Порядковый номер поля", "Тип поля", "Размер"...

И при добавлении полей пользователем в свои таблицы средствами DDL всего лишь в "системные" таблицы вносятся "экземпляры" системных типов которые (типы) определены статически.


DrPass   (2004-12-19 12:38:00) [3]


> ведь базы данны - и есть рекорды.

Налицо типичная подмена понятий. "Запись" в Паскале и "запись" в БД - совершенно разные вещи.


Roobee   (2004-12-19 12:34:00) [4]

к чему был вопрос.
ведь базы данны - и есть рекорды.
однако вы вольны добавлять поля в таблицы и удалять их.
ведь когда вы создаете таблицу бд с первым полем - строка длиной 32 символа, вторым - целое число, то в этот момент вы описываете структуру рекорда которую бд и создает. так что должно быть решение...


Поручик   (2004-12-19 12:26:00) [5]

Sergey_Masloff   (19.12.04 11:17) [4]

> Паскаль язык со строгой проверкой типов НА ЭТАПЕ
> КОМПИЛЯЦИИ. В любой нормальной книжке это ИМХО
> написано на первой или второй странице.


Жаль...


Sergey_Masloff   (2004-12-19 11:17:00) [6]

Поручик ©   (19.12.04 10:59) [3]
>А можно ли динамически создавать классы?
Паскаль язык со строгой проверкой типов НА ЭТАПЕ КОМПИЛЯЦИИ. В любой нормальной книжке это ИМХО написано на первой или второй странице.


Поручик   (2004-12-19 10:59:00) [7]

А можно ли динамически создавать классы?


begin...end   (2004-12-19 10:52:00) [8]

> Roobee ©   (19.12.04 07:25)

> например считать текстовый файл содержащий строки типа
> ИМЯ_ПОЛЯ=ТИП_РАЗМЕР

См. [1] или TStringList.Names, TStringList.Values.


Palladin   (2004-12-19 08:03:00) [9]

Record он на то и record, что описывает данные во время компиляции. Читайте книжки о паскале и решайте задачи. Меньше будет глупых вопросов, больше будет новых решений.

По сабжу, есть TIniFile.


Наверх

Титульная страница Поиск, карта сайта Написать письмо