Вниз
Скачать: CL | DM;

как удалить таблицу c помощью SQL так, что бы...   Найти похожие ветки 

← →
abc   (2003-06-03 14:52) [0]

как удалить таблицу с помощью SQL так, что бы автоинкрементное поле начиналось снова с 1 (Paradox 7.0)


← →
Соловьев ©   (2003-06-03 15:01) [1]

удалить все записи? или таблицу? ты определись.


← →
Sandman25 ©   (2003-06-03 15:12) [2]

Удалите таблицу и сделайте ее заново.
Если в ней есть данные, то вопрос не имеет смысла.


← →
abc   (2003-06-03 16:01) [3]

заного делать не вариант, десктопом создавалась, 90 полей,
подумай сам
даже если удались все записи, то автоинкремент начнётся не с 1, а с текщего значения, но всё таки надо, что бы файл остался со своей структурой полей


← →
stone ©   (2003-06-03 16:18) [4]

СУБД ????


> заного делать не вариант, десктопом создавалась, 90 полей


Предпложительно Paradox

Попробуй EmptyTable


← →
sniknik ©   (2003-06-03 16:19) [5]

> заного делать не вариант, десктопом создавалась, 90 полей,
сделать новую
select * into ... from ... where 1=2
> остался со своей структурой полей

а старую удалить. (извинятся если это Local SQL не буду, сам не указывает)


← →
Anatoly Podgoretsky ©   (2003-06-03 16:50) [6]

Это противоречит понятию AutoIncrement, у тебя уже получается не Auto и не Increment.
Только созданием новой таблицы.


← →
kaif ©   (2003-06-04 00:20) [7]

Извлеки всю таблицу в TTable.FieldDefs (программно). Затем используй TTable.CreateTable. Если конечно, у тебя нет foreign key на эту таблицу. Индексы тоже можно runtime создать через методы TTable.
Если ты думаешь, что DatabaseDesktop делает что-то более мудрое, то это не так. Вполне можно такое реализовать с помощью одного компонента TTable. И быстрее будет, чем данные делетировать с помощью SQL. Все равно SQL этот по одной записи все удалять будет.


← →
Sandman25 ©   (2003-06-04 10:26) [8]

kaif © (04.06.03 00:20)

Зачем нужно удалять записи SQL, если все равно планируется пересоздать таблицу? DROP TABLE работает и для непустой таблицы.


← →
Dred2k ©   (2003-06-04 10:57) [9]

SQL тут и не нужен.
Все сделает TTable.
1. Открываем старую. Затем FieldDefs.Update, IndexDefs.Update;
2. Заполняем свойства новой.
TableName := "...";
TableType := ttParadox;
TableLevel := <по вкусу>;
FieldDefs.Assign(старая.FieldDefs);
IndexDefs.Assign(старая.IndexDefs);
CreateTable;
Будет создана новая таблица, по структуре аналогичная старой (только кроме форейн-кеев, паролей и т.п.), со всеми индексами.
Затем закрываешь старую, делаешь старая.DeleteTable;
Новую закрываешь (хотя CreateTable ее и не открывал...), делаешь ей RenameTable("имя как было у старой").
Вот и все.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.021 c
1-84421
next2
2003-06-09 17:24
2003.06.26
при создании новой компоненты ошибка...


14-84687
Fareader
2003-06-03 19:31
2003.06.26
Работа в Днепропетровске


1-84358
Александр-И
2003-06-16 17:09
2003.06.26
LabeledEdit + UpDown


1-84090
Seldon
2003-06-08 00:38
2003.06.26
OwnerDraw в TPageControl


4-84813
Axis_of_Evil
2003-04-21 09:37
2003.06.26
hwnd




   Наверх