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

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

Реструктуризация таблицы Paradox программно [D6, Paradox]


OlegKrt ©   (2002-11-05 15:49:00) 

Кто знает, как можно произвести реструктуризацию (добавление, удаление поля, а главное изменение типа или размера поля) таблицы Paradox программно. Если удаление и добавление нового поля можно произвести с помощью Alter table, то как изменить размер поля (string,blob или numeric) не теряя при этом данных


mike-d   (2002-11-05 16:34:00) [1]

http://www.dbwork.kuban.ru/rus/index.html
TDbCheck, TRenameFields компоненты решат Ваши проблемы!

Одно небольшое дополнение:
Эта компонента не всегда корректно правит индексы после сбоев электропитания (вероятно не обнаруживает, что они битые), а также при наличии файлов БД с расширением .VAL (значения по умолчанию).
Лечится все это элементарным удалением индексов и *.val. И вообще (из личного опыта) значениями по умолчанию лучше не пользоваться, для этого есть AfterInsert.


MsGuns   (2002-11-05 16:22:00) [2]

Делешь цепочку альтеров
1. Создаешь новое поле NewPole с нужной длиной, названием, типом и т.д. В него суешь содержимое OldPole
2. Удаляешь поле OldPole
3. Поле NewPole перименовываешь в OldPole (если название поля надо оставить)

А можно и TBatchMove, где в качестве целевой используется предварительно созданная новая, "правильная" таблица, в режиме добавления и с контейнером связок "Старе поле">"Новое поле", с последующим удалением старой таблы и переименованием новой в старое имя. В этом случае можно получить даже НД с "неуместившимися" данными (Problems).


Val   (2002-11-05 16:14:00) [3]

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


Наверх

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