Форум: "Базы";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];
ВнизУдаление записи из выборки (из query) Найти похожие ветки
← →
Fishka (2002-12-25 11:17) [0]В DBCRTLGrid-e отображается выборка записей (query) из Table. Как удалить по кнопке запись из query? Из Table запись можно удалить, а при удалении из query выдается сообщение, что таблица только для чтения (Query.RequestLive:=True;).
Как удалить из QUERY?
← →
Lady D (2002-12-25 11:21) [1]TQuery + TUpdateSQL
← →
Fishka (2002-12-25 11:48) [2]Спасибо. Пишу следующее:
Upd_Q : TUpdateSQL
Upd_Q.DataSet:=Query2;
Upd_Q.DeleteSQL.Clear;
Upd_Q.DeleteSQL.Add("delete from "aa.dbf" where pole1=5");
Upd_Q.ExecSQL(ukDelete);
Ошибка при выполнении: Update failed.
Подскажите, где ошибки?
← →
mrcat (2002-12-25 12:03) [3]1. Связываешь TUpdateSQL с файлом базы
2. Generate SQL в TUpdateSQL
3. TQuery.UpdateObject присваиваешь TUpdateSQL
После чего: удаление, добавление, редактирование как и везде.
← →
mrcat (2002-12-25 12:04) [4]опечатка: Связываешь "TUpdateSQL" с файлом базы читать "TQuery"
← →
Fishka (2002-12-25 12:44) [5]mrcat ©
Спасибо. Вроде удаляется, только на экране ничего не обновляется.
Если поставить Query.AutoRefresh:=True;, то вообще ругается при выполнении, а Refresh не помогает.
Как правильно обновить на экране Query после удаления?
(Аппетит приходит во время еды - к сожалению...........)
← →
mrcat (2002-12-25 13:29) [6]Fishka
Если все было сделано правильно - удаляется и обновляется без Refresh"а
В TQuery RequestLive = true ? Его надо выставить
← →
mrcat (2002-12-25 13:33) [7]в false, CachedUpdate = true
← →
Lady D (2002-12-25 13:34) [8]CachedUpdates := false;
или
CachedUpdates := true; ... Query.ApplyUpdates;
← →
Fishka (2002-12-25 14:12) [9]mrcat ©
Query.RequestLive:=False;
Query.CachedUpdate:=true;
На форме ничего не обновляется.
Lady D ©
Query.CachedUpdates := true;
Query.ApplyUpdates;
На форме ничего не обновляется.
Что еще придумать? Где у меня ошибка?
← →
mrcat (2002-12-25 15:56) [10]Код показывай
← →
Fishka (2002-12-25 16:11) [11]Query2.RequestLive:=False;
Query2.CachedUpdate:=true;
Query2.UpdateObject:=Upd_Q;
Upd_Q.DataSet:=Query2;
Upd_Q.DeleteSQL.Clear;
Upd_Q.DeleteSQL.Add("delete from "aa.dbf"");
Upd_Q.DeleteSQL.Add("where pole1="+Query2.FieldByName("pole1").AsString);
Upd_Q.ExecSQL(ukDelete);
Query2.ApplyUpdates;
Больше ничего в программе нет. Что не так?
← →
Lady D (2002-12-25 16:22) [12]Для такого случая:
Query2.SQL.Clear;
Query2.SQL.Add("delete from "aa.dbf"");
Query2.SQL.Add("where pole1="+Query2.FieldByName("pole1").AsString);
Query2.ExecSQL;
← →
Fishka (2002-12-25 16:36) [13]Как это - Query2.FieldByName("pole1").AsString, ведь Query2 д.б. закрыто перед Clear, но тогда пропадет значение. А нужно удалить запись со значением Query2.FieldByName("pole1").AsString.
Что-то невнятно получилось.........
А в Query2 совсем другой запрос, результаты которого мы видим в DBCTRLGrid.
Так что Ваш вариант неверен.
← →
Lady D (2002-12-25 16:58) [14]Тьфу.
Мой вариант верен, и он давно работает. А вот Вашу писанину мне некогда проверять достаточно внимательно и я ее просто копирую. Поэтому и получаются такие ляпы.
Вам нужно уже решить как будет удаляться запись: либо предварительным позиционированием на нее и Query2.delete, либо в отдельном TQuery + ExecSQL и Query2.Refresh.
← →
Fishka (2002-12-25 17:02) [15]предварительным позиционированием на нее и Query2.delete из выборки и TQuery + ExecSQL из таблицы, из которой выборка.
Все удаляется, но на экране не обновляется.
← →
petr_v_a (2002-12-26 18:42) [16]Update Failed - значит, RowsAffected соотв. UpdateQuery не равно единице
> Lady D © (25.12.02 16:58)
Уж если Вам не лень отвечать на вопрос, писанину надо проверять внимательно
← →
ЮЮ (2002-12-27 07:07) [17]>Fishka (25.12.02 17:02)
предварительным позиционированием на нее и Query2.delete из выборки и TQuery + ExecSQL из таблицы, из которой выборка.
Все удаляется, но на экране не обновляется.
И не удалится, без переоткрытия. Для этого нужен компонент TUpdateSQL, а не просто TQuery c запросами обновления :-)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c