| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > смена типа поля |
| Автор: z-END 7.4.2005, 14:46 |
| Можно как-нить програмным путем (не через DBD) у таблицы Paradox в которой содержатся данные, сменить тип поля ID(primary key) с типа integer на тип AutoInc? |
| Автор: Vit 7.4.2005, 16:20 |
| Способ первый: Запустить запрос Alter Table Способ второй: Прямой вызов функций BDE |
| Автор: z-END 8.4.2005, 13:52 | ||
а можно поподробней я просто никогда не работал с данным оператором.. как это осушествляется? |
| Автор: DimW 8.4.2005, 14:37 |
| Допустим в TABEL_NAME есть поле FIELD_NAME у которого тип CHAR. Изменяем тип этого поля на INTEGER: ALTER TABLE TABEL_NAME MODIFY (FIELD_NAME INTEGER); |
| Автор: z-END 8.4.2005, 15:00 |
| тобишь мине надо так:ALTER TABLE MyTable MODIFY (ID AUTOINC); ? просто дельфей нет под рукой, проверить не могу. |
| Автор: DimW 8.4.2005, 15:15 |
| я незнаю типов СУБД Paradox, если есть AUTOINC то ставь его. главное чтобы титы не противоречили друг другу, вернее данные прежнего типа данным нового. |
| Автор: Vit 8.4.2005, 15:39 |
| В BDE есть файл localsql.hlp - там синтаксис SQL описан |
| Автор: z-END 8.4.2005, 15:49 |
| Vit я б судовольствием так и поступил, только вот нет у меня этой хэлпы, в поиске че-то нашел там тож предлагают какой-то файл из Doc\ прочитать, у меня там тож пусто.. По этому и спраишваю ибо прочитать негде. |
| Автор: Vit 8.4.2005, 17:43 |
| Вот он! |
| Автор: DimW 11.4.2005, 13:04 | ||
А что это не прокатило? Я же проверял, все уменя изменилось, но только на Paradox я не проверял... |
| Автор: Петрович 11.4.2005, 18:33 | ||
Точно не скажу, но насколько я помню, под BDE на локальных таблицах (включая PARADOX) такое не прокатит. Но, давно с такими таблицами не работал. Могу и ошибиться. |
| Автор: DimW 12.4.2005, 08:47 | ||
Да, действительно не прокатило... и под ADO тоже самое.... |
| Автор: bursa 12.4.2005, 14:50 |
| Cоздать таблицу со структурой как в начальной таблице, но с измененым типом поля, затем переносить записи с проверкой соответствия типов, затем удалять первоначальную таблицу, переименовывать и переиндексировать новую. |
| Автор: Петрович 12.4.2005, 16:39 | ||
Можно и в одной таблице: - добавляешь новое поле нового типа - копируешь в него содержимое старого - удаляешь старое Если нужно сохранить имя поля, то еще раз повторяешь это операцию. Иногда так удобнее, когда на таблицу навешено много всяких тригеров, ограничений, индексов и внешних ключей. |
| Автор: z-END 12.4.2005, 16:41 | ||
раз с sql не вышло, хотелось бы с помощью вот энтого:
|
| Автор: bursa 13.4.2005, 07:30 | ||
Только в тех базах, где можно удалить поле |