Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.04;
Скачать: CL | DM;

Вниз

Очистка таблицы   Найти похожие ветки 

 
Tex ©   (2007-02-05 13:00) [0]

Как быстро очистить таблицу, т.е. удалить все записи? Подскажите, мастера! Мне кажется, что поочередное удаление записей большой таблицы способом Table1.Delete будет долгим, или я не прав?


 
Desdechado ©   (2007-02-05 13:22) [1]

Query.SQL.Text:="DELETE FROM TabName";
QueryExecSQL;

В некоторых СУБД есть более быстрые варианты.


 
Рамиль ©   (2007-02-05 13:28) [2]

truncate, если даст выполнить


 
Sergey13 ©   (2007-02-05 13:57) [3]

drop table
create table


 
Gin2   (2007-02-05 14:23) [4]


> Sergey13 ©   (05.02.07 13:57) [3]

ага и все внешние ключи с констрейтами


 
Sergey13 ©   (2007-02-05 14:28) [5]

> [4] Gin2   (05.02.07 14:23)
А они там есть? Сомневаюсь. 8-)
Впрочем, может и есть. Но никто ведь не ограничивает мой скрипт только двумя командами. 8-)


 
Johnmen ©   (2007-02-05 17:02) [6]


> Gin2   (05.02.07 14:23) [4]
> > Sergey13 ©   (05.02.07 13:57) [3]
> ага и все внешние ключи с констрейтами


Да ну?


 
ANB ©   (2007-02-05 17:37) [7]


> Да ну?

для create :)


 
Johnmen ©   (2007-02-05 17:53) [8]


> ANB ©   (05.02.07 17:37) [7]

Для create? В смысле?
Для него ничего не надо, всё в нём...:)


 
Tex ©   (2007-02-06 09:39) [9]

Благодарю за помощь, я нашел решение:

begin
  try
   with Table1 do
    begin
     Active:=False;
     Exclusive:=True;
     Active:=True;
      try
       EmptyTable;
      except
       ShowMessage("Cannot empty database");
      end;
    end
  except
   ShowMessage("cannot open table in exclusive mode");
  end
end;


 
Desdechado ©   (2007-02-06 11:09) [10]

А СУБД так и осталась за гранью узнавания...


 
Комбинатор   (2007-02-06 11:21) [11]


> Sergey13 ©   (05.02.07 13:57) [3]
>
> drop table
> create table


Бред


 
evvcom ©   (2007-02-06 11:29) [12]

> [10] Desdechado ©   (06.02.07 11:09)

Телепатирую: судя по TTable, движок BDE, прямой доступ к таблице, СУБД - Paradox или dBase :)


 
sniknik ©   (2007-02-06 11:37) [13]

Tex ©   (06.02.07 09:39) [9]
в твоем решении есть один существенный недостаток... (я бы за такое с работы выгонял. один раз объяснял, а на второй если бы заметил за тем же выгонял...)
ты скрываешь реальные ошибки, если таковые будут, и вместо них пишешь свои домыслы... (обычно этим "грешат" "переводчики", но тут и этого нет)
обслуживать написанную подобным образом программу (ЦТО у вас есть?), практически невозможно... любой пустяк при полной инфе становится глобальной проблемой если инфу прячут.


 
Desdechado ©   (2007-02-06 12:06) [14]

evvcom ©   (06.02.07 11:29) [12]
Я тоже телепатировал, но после [1] надеялся что-то услышать от автора.

И расшифрую sniknik ©   (06.02.07 11:37) [13] для автора.
try в данном случае имеет отрицательный эффект. Лучше показать оригинальную ошибку, дать пользователю ее сохранить и потом передать разработчику, чем играть в угадайку, почему не получилось очистить таблицу.


 
Tex ©   (2007-02-06 12:48) [15]

Ух... какая бурная реакция )

Всем: Пишу простой справочник, в нем есть записная книжка, в которой можно удалять текущую запись (использую Table1.delete) и хотелось бы сделать опцию удаления всех записей. Таблица зап. книжки не связана ни с какими другими таблицами. Записей в ней предполагается минимум (~100). Спросил же банальность, никто толком не ответил.

To Desdechado ©: Мне и не требуется лезть за грани. Я не программист по профессии. Если бы им был, я бы не просил тут помощи.

evvcom ©: EasyDB

sniknik ©: Да блин, ничего я не скрываю. Проектом занимаюсь (и буду) только я. Привел код, который откопал из многочисленных FAQ, может быть, кому-то будет полезно.

Да со стороны каких-то коммерческих проектов ваши замечания справедливы, но мне вполне вместо этого достаточно было услышать всего лиш пару вариантов и их описаний, типа:

Table1.EmptyTable;

Query.SQL.Text:="DELETE FROM TabName";
QueryExecSQL;


и т.п. Вот это было бы действительно полезно и информативно. Но как я уже неоднократно убеждался на этих форумах - пока выпросишь конкретный код (причем всего лиш пару строк, которые копирнуть или даже написать - 1 мин), пройдет не меньше 10 а то и 30-40 (!) сообщений, при этом 20 раз скажут RTFM, еще 10 - минимум рабочего кода - так наброски, по которым все равно ничего не поймешь. Хорошо хоть, обычно, находятся добрые люди, в последнем посте таки выкладывающие точное решение...

P.S. Все равно, всех благодарю за ответы, обязательно сделаю для себя выводы, ибо век живи - век учись ))


 
Desdechado ©   (2007-02-06 12:59) [16]

Главный вывод, который ты должен сделать, - конкретного кода никто не даст. Дают наброски, достаточные для нахождения решения, если есть желание и мозги. Если их нет, то код не поможет.
Тут просто пытаются сподвигнуть думать, а не поедать готовое.

И, кстати говоря, ответы все были по сути. Если ты их не понял, это твой недостаток, а не отвечающих. Вариантов решения многих проблем бывает масса. И выбор зависит от многих факторов.
И для общего развития http://www.ln.ua/~openxs/articles/smart-questions-ru.html


 
Johnmen ©   (2007-02-06 13:00) [17]


> Хорошо хоть, обычно, находятся добрые люди, в последнем
> посте таки выкладывающие точное решение...

Они не добрые, они просто ренегаты.
:)))


 
sniknik ©   (2007-02-06 13:13) [18]

> Да блин, ничего я не скрываю. Проектом занимаюсь (и буду) только я.
и пользоваться тоже только ты? только дома, и в случае чего запускать под отладчиком? тогда ладно...
но все одно плохая привычка (не ходи с ней на работу).

> достаточно было услышать всего лиш пару вариантов и их описаний, типа:
> Table1.EmptyTable;
без указания от тебя чем(база/компоненты) ты пользуешься? не смеши.
это нормально только в частном (Paradox/dBase. BDE (ну еще наверняка у "левых" компонент есть)) случае. именно по тому что ты привел это и для тебя это подошло тебя и "вычислили" (база/движок в [12])

> Query.SQL.Text:="DELETE FROM TabName";
> QueryExecSQL;
более общее, подходит для всех практически, и присутствует сразу в [1]!!! (о каких 30-40 постах речь???)

> так наброски, по которым все равно ничего не поймешь.
какие вопросы такие и ответы... вернее ответы намного более грамотные и информативные чем можно было бы ожидать... грех жаловаться.


 
sniknik ©   (2007-02-06 13:17) [19]

> Они не добрые, они просто ренегаты.
да ладно... может только к концу нужная инфа собирается... по крохам.


 
Tex ©   (2007-02-06 13:52) [20]

Нда, еще 4 поста ни о чем. Пожалуйста, не надо учить жить/задавать вопросы и тп. Это уже флуд. Если учесть что всем понятно какая ДБ используется, вопрос "Как быстро очистить таблицу, т.е. удалить все записи" - максимально конкретен. По поводу "конкретного кода никто не даст" не говорите за других, я не раз получал на этих форумах великолепные ответы, причем без всяких разглагольствований и нравоучений. Больше чем уверен, что многие, если не большинство, ищущие ответы на свои вопросы здесь, подчерпнули гораздо больше знаний, разбирая ответы с конкретными примерами, чем решая пазлы из ошметков кода и темных намеков. Это мое ИМХО и можете говорить что угодно, я уверен в этом. Считаю, тема закрыта, иначе потонет во флуде...


 
Desdechado ©   (2007-02-06 14:03) [21]

> не надо учить жить/задавать вопросы и тп
Зачем же ты тогда приперся сюда, как не за помощью?
А дареному коню, как известно...


 
Tex ©   (2007-02-06 14:10) [22]

Я "приперся" (нда, культура) сюда за ответом на свой вопрос. Вот какая помощь была нужна, а не обучение
> жить/задавать вопросы и тп
... А коня своего, сударь, оставьте себе...


 
Johnmen ©   (2007-02-06 14:27) [23]


> Tex ©   (06.02.07 14:10) [22]

Раз ты считаешь, что тебе единственному решать, как должен задаваться вопрос, то почему отказываешь другим в праве решать, как им отвечать на вопросы? А?


 
sniknik ©   (2007-02-06 14:30) [24]

> Если учесть что всем понятно какая ДБ используется
это не БЫЛО, а СТАЛО понятно, после поста [9], до этого была полная неопределенность, а после уже вроде и ответ стал не нужен...

> Я "приперся" (нда, культура) сюда за ответом на свой вопрос. Вот какая помощь была нужна, а не обучение
как хочеш, только если ты не сделаешь выводов из "обучения" и следующий вопрос задашь также то есть риск не получить ответов вообще. (надежда только на ренегатов ;).
отвечающие тоже не хотят "пазлов", а хотят получить чтото взамен (типа опыта от реальных проблем, например. или приятного стеба... если скучно и нечем занятся. а что, вполне себе замена). решай сам для какого типа ответов ты составляешь вопросы.



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

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

Наверх




Память: 0.53 MB
Время: 0.047 c
3-1165583259
DelphiLexx
2006-12-08 16:07
2007.03.04
импортировать xml в БД Firebird 2.0


1-1168583991
YCH.Del
2007-01-12 09:39
2007.03.04
TAdvStringGrid + TAdvGridExcelIO Форматирование ячеек с формулами


2-1171266984
sergeyst
2007-02-12 10:56
2007.03.04
Масштабирование


15-1171025514
IMHO
2007-02-09 15:51
2007.03.04
Диалоги из фильма на DVD


3-1165832104
dest
2006-12-11 13:15
2007.03.04
Insufficient memory for this operation