![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мастера, ПОМОГИТЕ, не могу. Базы данных. [D6, Paradox]
TiredDmitry © (2002-07-24 18:27:00)Я админ в игротеке, пишу сейчас программу для учёта компьютеров, но меня остановило незнание баз данных. 8(
Необходимо, чтобы программа по событию ontimer опрашивала базу данных, и если нынешнее время >= чем определённое значение в базе - выводилось сообщение, а картеж удалялся. Пробовал Lookup, но он ищет только точные совпадения. Помогите, кто знает, обещаю выложить исходники после написания программы.
Serge_D (2002-07-31 11:44:00) [1]оппаньки... я гоню...
mike kouzmine написал все верно - а я тормознул и не полностью разобрал смысл вопроса.
мой пример больше подходит для 2-х связанных таблиц.
Serge_D (2002-07-31 11:29:00) [2]2TiredDmitry можно реализовать все в одном SQL:
delete from <таблица>
where <ключевое поле> in (
select <ключевое поле> from <та же таблица>
where <условие удаления>
)
... правда не помню сейчас синтаксис для BDE, поэтому пишу в общем виде.
TiredDmitry (2002-07-31 04:00:00) [3]NNH, согласен, что доля истины есть везде.
Anatoly Podgoretsky, есть такое выражение: "Критикуя,- предлагай.", в случае с Александром я услышал только первую часть... пошёл в чат, спросил народ, мне помогли решить проблему в обход баз данных вообще. Согласитесь, что на все вопросы можно ответить примерно так: "Читай help, а лучше книгу купи". Но ведь это я и сам знаю и почему-то пришёл именно в форум. Приведу пример: мне нужна всего-лишь одна API функция, я задаю вопрос, а меня в ответ посылают в книжный ларёк... Я не воспринимал его сообщение как наезд, мне просто стало обидно за то, что этот сайт может превратиться в неизвестно что, поэтому и поднял тему на примере ответа Alexandr"a.
Изменим жизнь к ...шему
Anatoly Podgoretsky (2002-07-27 12:23:00) [4]Не ругайтесь, Александр в данном случае сказал корретно и ни кого не посылал домой. В данном случае особенно надо прислушаться к пункту (3), без базовыз знаний с базами работать тяжело и получаются уродики (1). Возможное решение в (2).
Другое дело что воспринято это как наезд.
NNH (2002-07-27 11:52:00) [5]TiredDmitry, ты конечно прав. Но и в его ответе есть доля истины. Согласись. Но помогать друг другу нужно всегда. А если не хочешь помогать, то не хрен заглядывать в форум!
TiredDmitry (2002-07-27 01:10:00) [6]Честно сказать, Саша, был задан вопрос, а ты начинаешь говорить типа: "ТЫ - нихрена не умеешь и никогда не научишься, Я - крутой перец,- Я всё умею... и вообще пойди-ка книжек почитай малыш" Форум рассчитан на то, чтобы люди друг другу помогали и такие сообщения должны рассматриваться как оффтопики. Именно благодаря таким, как mike kouzmine этот форум живёт и имеет посещаемость. Не буду говорить о том, что было если бы на все вопросы следовал ответ: "ХА-ХА-ХА, ты этого не знаешь??!! Лопух, иди домой...." А если ты и вправду такой козырный тип, то дал бы совет лучше.
TiredDmitry (2002-07-25 15:18:00) [7]ой, большое блин спасибо!
mike kouzmine (2002-07-25 10:08:00) [8]delete from "Table" t
where t.Time < :Time
Q.Close
Q.ParamByName("Time").asDateTime := Now;
Q.Prepare;
Q.ExecSql
Синтаксис не совсем помню, посмотри в хелпе
mike kouzmine (2002-07-25 10:04:00) [9]with Table1 do
begin
SetRange([Ot],[Now]);
while not Eof do Delete;
end;
Alexandr (2002-07-25 09:58:00) [10]1) кому нужны такие исходники...
2) давай я тебе сам такую программу напишу за небольшое вознаграждение
3) Недо книжки читать про базы данных, про работу с ними в Дельфи...
TiredDmitry (2002-07-24 21:07:00) [11]или я плохо знаю SQL или одно из двух, но SQL запрос просто фильтровал базу и выводил обратно в DBGrid, но ведь требуется, чтобы информация не выводилась в таблице, а просто убивался картеж...
mike kouzmine (2002-07-24 18:36:00) [12]Можно с помощью SQL/ Можно построить индекс по полю где время и делать SetRange([StrToDate("1.1.1900")],[Now]);