Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.26;
Скачать: 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 вся ветка

Текущий архив: 2003.06.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
14-84670
Cranium
2003-06-04 17:25
2003.06.26
Как в клиенте получить права пользователя на таблицу


1-84290
td
2003-06-05 19:18
2003.06.26
программно присвоить обработку события


4-84831
Вадим
2003-04-05 18:49
2003.06.26
Прокрутка текста


1-84392
VISA
2003-06-09 13:45
2003.06.26
Замена цвета картинки в TImageList


3-84040
mao
2003-06-01 12:28
2003.06.26
БД, языки и кодировки