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

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

Удаление записи через RxDBGrid [D5, dBase, FoxPro]


orion_st ©   (2002-12-18 11:53:00) 

Как сортировать элементы в БД в TTable? Пока я это делаю через SQL запрос ORDER BY и рез-тат вывожеу в RXDBGrid.
При этом, по выделенной ячейке мне надо удалять запись из БД.
Использую RxDBGrid1.SelectedField.dataset.delete;
Естественно, мне ругается что ReadOnly, т.к. рез-тат запроса.
Так вот вопрос, как можно в такой ситуации удалить запись из БД?


orion_st   (2002-12-19 11:53:00) [1]

Помогло, спасибо. :)


ЮЮ   (2002-12-19 10:54:00) [2]

Тогда будет "DELETE FROM "business.db" WHERE ID = ... , а ID у записи никто не меняет.


orion_st   (2002-12-19 10:47:00) [3]

И что мне это даст? Проблема обращения с запросом к тем же полям все равно останется.


ЮЮ   (2002-12-19 10:09:00) [4]

>Других полей нет
И это называется БИЗНЕСС ? Дата, время и сообщение :-)
Добавь хотя бы поле, по которому можно создать первичный уникальный индекс.


orion_st   (2002-12-19 10:03:00) [5]

Других полей нет, только те три. А это время, я из DateTimePicker беру: что выдавалось, то я в БД и записывал. Я уверен, что если поменяю тип записи Date и Time на текст, то все будет нормально удаляться, но не очень хочется.


ЮЮ   (2002-12-19 03:58:00) [6]

WHERE (EvntTime="13:55:43")
Там ёщё и милисекунды есть наверное. А более существенных полей, чем время, в таблице нет? А зря


orion_st   (2002-12-18 15:11:00) [7]

Тогда подскажи,
я пишу запрос:
Query2.SQL.Text:="DELETE FROM "business.db" WHERE (EvntTime="13:55:43") AND (EvntDate="18.12.02") AND (Msg="1111")";

Подобная запись есть, но она этим запрослм не удаляется. Если я удаляю только по значению в Msg, то запись удаляется.
EvntTime - тип Time
EvntDate - nип Date

Что в запросе неверно?


FreeLancer   (2002-12-18 14:13:00) [8]


> Я запрос через TQuery проводил. И хочу вообще от него уйти,
> чтобы сортировалось без запросов, а какими-либо еще средствами.

Извини, это я на выпад Johmen"а отвечал, а вот TQuery на TTable, я лично, не променял бы.


orion_st   (2002-12-18 14:09:00) [9]

Я запрос через TQuery проводил. И хочу вообще от него уйти, чтобы сортировалось без запросов, а какими-либо еще средствами.


FreeLancer   (2002-12-18 13:43:00) [10]

Прости старый, но я здесь писал только про TQuery. Я спрашивал как это он запрос в TTable засунуть исхитрился.


Johnmen   (2002-12-18 13:41:00) [11]

>FreeLancer © (18.12.02 13:05)

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


FreeLancer   (2002-12-18 13:05:00) [12]

CachedUpdates := false;
RequestLive := true;


orion_st   (2002-12-18 12:56:00) [13]

Ну ставлю я нужный IndexName, а при добавлении новой записи, ругается, что ReadOnly. :( Нигде ничего про это не нашел.


orion_st   (2002-12-18 12:55:00) [14]

Ну ставлю я IndexName, а при добавлении новой записи, ругается, что ReadOnly. :( Нигде ничего про это не нашел.

Table1.Exclusive := True;
Table1.IndexDefs.Update;
for I := 0 to Table1.IndexDefs.Count - 1 do
if Table1.IndexDefs.Items[I].Fields = "EvntTime" then
Table1.IndexName := Table1.IndexDefs.Items[I].Name;
Table1.Exclusive := False;


Prooksius   (2002-12-18 12:03:00) [15]

В TTable устанавливаешь нужный IndexName.
Help на TTable.IndexName почитай


VAleksey   (2002-12-18 12:01:00) [16]

DELETE
FROM "Table1.db"
WHERE // условие из SelectedField :))
Query1.Close;
Query1.Open;


FreeLancer   (2002-12-18 12:01:00) [17]

Интересно, как это ты запрос в TTable смог засунуть...
А вот к TQuery можно пристегнуть TUpdateSQL и делать Insert, Update, Delete и Refresh


Наверх

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