
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
27.07.2019, 00:17
|
|||
|---|---|---|---|
Как удалить запись из TClientDataSet не удаляя её из базы? |
|||
|
#18+
Вызываем Open - открываем TDataSet, отображаем данные из базы в TDBGrid, связывая через источник данных TDataSource. Всё как обычно. Теперь нужно просто в гриде не показывать определённую запись. Вызывать метод TDataSet.Delete нельзя, т.к. он удаляет запись в базе, а этого не нужно. Наверное как то можно фильтровать TDataSet после инициализации действия по скрытию записи. Но можно ли как то в самом гриде удалить из него строчку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.07.2019, 09:02
|
|||
|---|---|---|---|
|
|||
Как удалить запись из TClientDataSet не удаляя её из базы? |
|||
|
#18+
verter, добавить в таблицу поле fShow и использовать TQuery с select * from table where fshow = 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.07.2019, 12:55
|
|||
|---|---|---|---|
Как удалить запись из TClientDataSet не удаляя её из базы? |
|||
|
#18+
verter, у вас в заголовке вопроса написано TClientDataSet, а в самом вопросе - TDataset. Так какой у вас конкретно Dataset? Если ClientDataSet, то там ведь изменения посылаются провайдеру только при вызове метода ApplyUpdates. Можно спрятать какие-то записи в любом Dataset'е при помощи фильтрации, см. свойство Filtered и событие OnFilterRecord. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.07.2019, 11:07
|
|||
|---|---|---|---|
Как удалить запись из TClientDataSet не удаляя её из базы? |
|||
|
#18+
verter, см. cds.LogChanges ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.07.2019, 16:20
|
|||
|---|---|---|---|
Как удалить запись из TClientDataSet не удаляя её из базы? |
|||
|
#18+
LocksmithPCverter, добавить в таблицу поле fShow и использовать TQuery с select * from table where fshow = 1 Так не могу, датасет ReadOnly ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.07.2019, 16:30
|
|||
|---|---|---|---|
Как удалить запись из TClientDataSet не удаляя её из базы? |
|||
|
#18+
verter, если нужно динамически то скрывать то показывать запись то создать internalcalc-поле, по к-му включать фильтр. если же разово то я ранее написал как можно удалить запись лишь из датасета не влияя на журнал изменений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.07.2019, 14:43
|
|||
|---|---|---|---|
Как удалить запись из TClientDataSet не удаляя её из базы? |
|||
|
#18+
vavanverter, если нужно динамически то скрывать то показывать запись то создать internalcalc-поле, по к-му включать фильтр. если же разово то я ранее написал как можно удалить запись лишь из датасета не влияя на журнал изменений Понял. Спасибо, попробую так и сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.07.2019, 14:59
|
|||
|---|---|---|---|
|
|||
Как удалить запись из TClientDataSet не удаляя её из базы? |
|||
|
#18+
А зачем это нужно? Чего получить хотите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.07.2019, 16:50
|
|||
|---|---|---|---|
Как удалить запись из TClientDataSet не удаляя её из базы? |
|||
|
#18+
Нет, с вычислимым полем тоже не получается, т.к. датасат ReadOnly, то и задать значение вычислимому полю тоже не даёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.07.2019, 16:56
|
|||
|---|---|---|---|
Как удалить запись из TClientDataSet не удаляя её из базы? |
|||
|
#18+
MirnyiAtomА зачем это нужно? Чего получить хотите? Я отобразил в DBGrid записи из ReadOnly датасета, который TClientDataSet. По определённому событию нужно скрывать ту или иную запись из грида. Я понимаю, что это достигается фильтрованием датасета, но как запоминать то что вот эта запись была скрыта, а вот эта ещё нет. Конечно, можно добавить скажем стринглист, в который добавлять ID скрытых записей и потом каждый раз по событию фильтровать датасет в соответствии со значениями ID, которые запомнили в стринглисте, но как то это всё муторно, ищу более правильный способ. Может у грида есть какая-нибудь возможность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.07.2019, 16:57
|
|||
|---|---|---|---|
Как удалить запись из TClientDataSet не удаляя её из базы? |
|||
|
#18+
verter, не делайте исходный датасет ro. а internalcalc в cds создаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.07.2019, 16:59
|
|||
|---|---|---|---|
Как удалить запись из TClientDataSet не удаляя её из базы? |
|||
|
#18+
verterReadOnly датасета, который TClientDataSetа он откуда записи берет? через провайдера или сам по себе заполняется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.07.2019, 17:31
|
|||
|---|---|---|---|
Как удалить запись из TClientDataSet не удаляя её из базы? |
|||
|
#18+
Согласен, можно не делать датасет ReadOnly. Как уже писали тут, есть свойство LogChanges. Если оно, как по умолчанию, True, то все внесенные изменения сохраняются в свойстве Delta и передаются провайдеру только при вызове метода ApplyUpdates. Просто не вызывайте ApplyUpdates и внесенные пользователями изменения никуда не пойдут. А если данные берутся не от провайдера, а из файла, то то же самое, только вместо ApplyUpdates используется MergeChangeLog. Такой вариант вам не подходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.07.2019, 07:18
|
|||
|---|---|---|---|
|
|||
Как удалить запись из TClientDataSet не удаляя её из базы? |
|||
|
#18+
verterПо определённому событию нужно скрывать ту или иную запись из грида. Вот этим вы что хотите получить? Какая у вас задача? То о чем вы спрашиваете можно решить в лоб, ничего сложного нет. Смотрите, если вы не хотите менять датасет, то значит вам нужен какой то посредник между гридом и датасетом. Но может вашу задачу можно как то по другому решить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&mobile=1&tid=2039182]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 452ms |

| 0 / 0 |
