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

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

как быстро очистить таблицу от данных [D5, dBase, FoxPro]


Страницы:   1 2

LAndreyV ©   (2004-02-27 15:35:00) 

Типа EmptyTable, только через Query


menart   (2004-02-28 16:14:00) [1]

Хорошо согласен, что это прокатит с файл-серверными решениями, а с клиент-серверными решениями как? ttable это не выход...


Anatoly Podgoretsky   (2004-02-28 13:51:00) [2]

Ни какого отношение это к SQL не имеет, это команда специфического драйвера.


menart   (2004-02-28 13:48:00) [3]


> Anatoly Podgoretsky ©   (28.02.04 13:42) [35]

Для этого есть команды в SQL PACK
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1077726667&n=1


Anatoly Podgoretsky   (2004-02-28 13:44:00) [4]

Да и сама семантика
DELETE - удалить записи
EmptyTable - очистить таблицу
разве тебе ни о чем не говорит?


Anatoly Podgoretsky   (2004-02-28 13:42:00) [5]

menart ©   (28.02.04 13:18) [34]
Очень просто Delete для одной записи равносилен выражению ... Where ID = ###
Удалять надо в цикле
Твое представление об EmptyTable очень далеко от действительности, создается новая пустая таблица
Совет насчет BDE API переадресую обратно
Рекомендую также проверить тестами на достаточно большой таблице, последовательно применить DELETE FROM и EmptyTable наблюдая после каждого действия за размером таблицы. А еще можно включить показ удаленных записей в таблице и увидеть все своими глазами. Если не умеешь это делать программно, то воспользуйся СУБД под названием dBase/FoxPro


menart   (2004-02-28 13:18:00) [6]


> Anatoly Podgoretsky ©   (28.02.04 12:25) [33]

Я может не совсем понял... Ну я сомниваюсь в твоих словах...
Delete у Table удаляет только текушую запись на которую указывает курсор! А SQL команда удаляет все строку у таблицы, если не указано условие!! EmpetyTable у BDE передает команду BDE анологичную запросу delete? не даром в остальных компанентах (ADO,IB,Express) нету этой команды!!! Так что спорить здесь бысмыслено, посмотри внимательно BDE API!


Anatoly Podgoretsky   (2004-02-28 12:25:00) [7]

menart ©   (27.02.04 17:07) [29]
Не прав
DELETE не очищает таблицу, а удаляет запись и полность эквивалентен методу Delete у TTable. Работает на уровне DML
EmptyTable же просто выкидывает все существующии записи (работает на уровне структуры таблицы, а не записей). Эквивалентом будет последовательность DROP TABLE + CREATE TABLE + CREATE INDEX, это уровень DDL


Johnmen   (2004-02-28 02:41:00) [8]

>Курдль ©  (27.02.04 16:55) [25]

Уехал недалеко... Да и стыд твой - твои личные проблемы...
:)


menart   (2004-02-27 17:15:00) [9]

Ну привыкнуть хоть к основам... SQL давно уже пытаються подогнать к одному стандарту, хотя... ну их!


Курдль   (2004-02-27 17:12:00) [10]


> лучше учится писать правльно сразу, а то там прокатит а
> там нет! и будет неудобно привыкать к двум методам! Лучше
> к одному

К сожалению, это несбыточная мечта - "Один метод".
... outer join (ANSI)
A.ID =* B.ID (Sybase)
A.ID = B.ID(+) (Oracle)
Sybase заявил о возможности писать запросы и процедуры на Java.
Так что пока делаешь один проект под одну СУБД - привыкаешь к ее фишкам. Потом - все равно переучиваться...


menart   (2004-02-27 17:07:00) [11]


> Anatoly Podgoretsky ©   (27.02.04 16:59) [26]

А чем простая строчка с DELETE не подходит? И зачем все усложнять?
DELETE помоему делат тоже самое что и EmpetyTable? Или я не прав? Если не прав, то в чем?


app   (2004-02-27 17:01:00) [12]

menart ©   (27.02.04 16:59) [27]
От темы отхода нет, автор уже применил ему предложенное, нет и ни каких причин для перевод.
Есди есть желание сделать близкую ветку в той конференции то пожалуйста.


menart   (2004-02-27 16:59:00) [13]

Прошу всех в http://www.delphimaster.ru/cgi-bin/forum.pl?id=1077890338&n=3
а то здесь начили забивать ветку и ушли от темы


Anatoly Podgoretsky   (2004-02-27 16:59:00) [14]

Альтернативой, которая сможет выполнить тоже самое с помощью SQL это полное удаление и воссоздание таблиц. А вот это сожрет не 60 кб, про трудоемкость и возможные ошибки вообще молчу.
Мною предложен оптимальный вариант для его случая. При том это нужно только именно для его случая, для других баз и движков это или не требуется или не реализуемо.

Хакерские методы с копированием заголовка таблицы и последующей его корректировки, удалением исходной и переименованием временной не расматриваю вообще.


Курдль   (2004-02-27 16:55:00) [15]

> Johnmen ©

Ну-ка, навскидочку, поехали по базам:
оракл - "delete table_name"
сайбэйс - "delete table_name"
интербэйс, сволочь, требует "from"
а остальные и базами-то назвать стыдно :)


Anatoly Podgoretsky   (2004-02-27 16:54:00) [16]

menart ©   (27.02.04 16:46) [19]

> TTable специально только для этой цели",
что увеличит сам exe на 50-60 кБайт! Хотя при современых


Выбираем между возможностью и не возможностью

компьютерах это ерунда. Представим себе такую ситуацию, что имеется БД с 30-50 таблицами! для каждой заводим свой ttableб и дизайн литит к чертовой бабушки, через полгода программа проктически не читаема и все сводикся к

Достаточно одного на всю программу и одной функции для унификации работы, не требуется даже метод.


Johnmen   (2004-02-27 16:51:00) [17]

>Fay ©   (27.02.04 16:46) [20]

Возможно. Но это не есть "большинства БД"

>menart ©  

Успокойся. Не надо нервничать...:)


menart   (2004-02-27 16:49:00) [18]


> DELETE работает исправно (кстати, ключевое слово FROM -
> не обязательное для большинства БД)

лучше учится писать правльно сразу, а то там прокатит а там нет! и будет неудобно привыкать к двум методам! Лучше к одному


menart   (2004-02-27 16:47:00) [19]

извиняюсь не сам дизайн! а рабочая форма! хотя все.. мне кажется этой теме пора в потрепаться! :))


Fay   (2004-02-27 16:46:00) [20]

Johnmen ©   (27.02.04 16:43) [18]
В MSSQL2000 delete без from прокатило...


Страницы:   1 2

Наверх

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