![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическое добавление полей в TTable [D7]
Андрей (начинающий) © (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]Удалено модератором