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

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

Динамическое добавление полей в TTable [D7]


Страницы:   1 2

Андрей (начинающий) ©   (2009-05-13 16:04:00) 

Имеется таблица с данными. Как к существующим полям добавить програмно новое? Поискал, нашел только как програмно создать таблицу, а про добавление полей нигде не нашел. Помогите, пожалуйста, ссылкой или объясните здесь, как это делается.


sniknik   (2009-05-14 15:21:00) [1]

а, вот ты про что, не понял сначала, подумал, что про невозможность сделать через ADO.

да, "самым нижним уровнем" действительно должно быть BDE, должно быть установлено чтобы сработали методы ADOX (да и SQL при обновление структуры в данном случае).


Anatoly Podgoretsky   (2009-05-14 13:14:00) [2]

> sniknik  (14.05.2009 12:25:23)  [23]

Вырезка из справки

> Драйвер баз данных Paradox работает в одном из двух режимов, в зависимости от того,
> установлено ядро баз данных Borland Database Engine (BDE) или нет. Данные Paradox обновляются только
> с помощью ядра BDE. Если ядро BDE не используется, данные Paradox можно читать,
> экспортировать или присоединять только для чтения.


sniknik   (2009-05-14 12:25:00) [3]

> для Парадокс через АДО никак
ну вы хотя бы добавляйте, что речь уже о "безSQLных" методах, а то можно понять что вообще никак.

да и с ADOX не уверен, что никак, для "родного" mdb через него же есть возможность менять непосредственно, возможно SQL им и пользуется как "нижним уровнем", а значит для совместимости могли сделать и для исамов (парадокса и д.р.) чтобы ядро SQL независимо от исама работало однотипно.
ну я бы так сделал. в одном месте логика, в другом реализация действий по типу данных.
в общем думаю есть надежда и для ADO :), вот только проверять это или использовать на практике что то не хочется, есть гораздо более простые методы (тот же SQL).


Anatoly Podgoretsky   (2009-05-14 11:48:00) [4]


> ну я как бы на правах стеба ))

А я на правах стеба отвечу, для Парадокс через АДО никак, придется устанавливать полный БДЕ.


Германн   (2009-05-14 00:32:00) [5]


> MsGuns ©   (13.05.09 23:55) [20]
>
> Если я правильно понял, то в сабже речь идет об установке
> новой версии СУБД (программа + модель БД) на "старые" данные.
>  Если так, то делается это несколько иначе.
>

Лично я имел в виду именно такую задачу, но одну конкретную (свою). В том случае "делать несколько иначе" было "из пушки по воробьям". Всё-таки о "новой модели БД" в сабже нет речи, имхо. Есть небольшое изменение структуры одной таблицы. Тоже имхо.


MsGuns   (2009-05-13 23:55:00) [6]

Если я правильно понял, то в сабже речь идет об установке новой версии СУБД (программа + модель БД) на "старые" данные. Если так, то делается это несколько иначе.


Palladin   (2009-05-13 21:52:00) [7]


> sniknik ©   (13.05.09 20:42) [17]

ну я как бы на правах стеба ))


Андрей (начинающий)   (2009-05-13 21:01:00) [8]

пошел читать :)


sniknik   (2009-05-13 20:42:00) [9]

> А без SQL никак?
можно, но SQL все таки проще.

> ADOX поможет тебе
так у него TTable, а значит BDE и BDE32 хелп.


Palladin   (2009-05-13 20:35:00) [10]

без проблем, ADOX поможет тебе если не хочешь изучать SQL DD
единственная сложность доступ к парадоксу через ADO должен быть, но я думаю ты справишься, это ничто в сравнении с SQL DD


Андрей (начинающий)   (2009-05-13 20:29:00) [11]


> Германн ©   (13.05.09 17:52) [12]

А без SQL никак?


Германн   (2009-05-13 18:51:00) [12]


> А если прога будет запущена повторно, как тогда ?

if FindField('Имя столбца') then
:)


MsGuns   (2009-05-13 18:43:00) [13]

>Андрей (начинающий)   (13.05.09 17:46) [11]
>Задача проста :). Имеется таблица с записями в базе данных. Ее надо >
>реструкторизировать (добавить пару полей и внести в эти поля каждой >записи значения по-умолчанию). Таблица не слишком большая, около 500 >записей.

А если прога будет запущена повторно, как тогда ?


Германн   (2009-05-13 17:52:00) [14]

ALTER TABLE
Читать localsql.hlp


Андрей (начинающий)   (2009-05-13 17:46:00) [15]


> sniknik ©   (13.05.09 17:06) [9]

Задача проста :). Имеется таблица с записями в базе данных. Ее надо реструкторизировать (добавить пару полей и внести в эти поля каждой записи значения по-умолчанию). Таблица не слишком большая, около 500 записей.


Медвежонок Пятачок   (2009-05-13 17:11:00) [16]

Как правило, попытка реструктуризации "на лету" таблицы в базе данных связана с плохим дизайном самой базы.

или с изменяющимися условиями реального мира, который сложнее наших идеальных представлений о правильном дизайне ПО.


sniknik   (2009-05-13 17:06:00) [17]

> если можно, то объясните по обоим методам
если можно то объясни задачу, а не то как ты решил его делать.
т.е. чего пытаешься добиться добавляя эти поля. зачем.


Андрей (начинающий)   (2009-05-13 17:05:00) [18]


> Jeer ©   (13.05.09 16:59) [7]


> Существуют "вычисляемые" поля, которые могут добавляться
> виртуально в TTable.

Но в саму базу данные из этих вычисляемых полей не занести, я правильно понимаю?
Ими можно пользоваться только во время выполнения программы?


Jeer   (2009-05-13 16:59:00) [19]


> Андрей (начинающий)   (13.05.09 16:04)
>
> Имеется таблица с данными. Как к существующим полям добавить
> програмно новое? Поискал, нашел только как програмно создать
> таблицу, а про добавление полей нигде не нашел. Помогите,
>  пожалуйста, ссылкой или объясните здесь, как это делается.
>


Как правило, попытка реструктуризации "на лету" таблицы в базе данных связана с плохим дизайном самой базы.
Существуют "вычисляемые" поля, которые могут добавляться виртуально в TTable.


Медвежонок Пятачок   (2009-05-13 16:58:00) [20]

Удалено модератором


Страницы:   1 2

Наверх

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