Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.03.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.038 c
3-1165461471
petvv
2006-12-07 06:17
2007.03.04
Происходит округление до целого числа при выборке из базы


15-1170942307
Evgeniy.G
2007-02-08 16:45
2007.03.04
Delphimaster.ru - превращение в "Мопед"


2-1171520607
aht
2007-02-15 09:23
2007.03.04
inner join по 3м таблицам


15-1169926938
Evgeniy.G
2007-01-27 22:42
2007.03.04
СОС!! Перевести из Си в Дельфи


6-1159115952
CAMCOH
2006-09-24 20:39
2007.03.04
Вытащить цену на бензин со страницы удалённого сайта





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский