![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Удаление записи через 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