Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.11;
Скачать: CL | DM;

Вниз

Удаление текущей записи из Dataset a   Найти похожие ветки 

 
onix ©   (2002-03-21 13:24) [0]

Доброго здоровья всем. Ув. коллеги подскажите пожалуйста решение данной проблемы. При помощи TIBQuery получаю набор данных о продажах товаров за некий период времени и связываю его с компонентом TDBGridEh. Так вот пробегая по всем записям нахожу одинаковые записи с наим.товаров и складываю кол-во проданных. Нужно, удалить из НД обработанную запись. Пытаюсь сделать Delete, а в ответ получаю "Cannot delete from dataset. (No delete query)".


 
Turalyon ©   (2002-03-21 13:31) [1]

У тебя в IBQuery выборка делается из одной таблицы? Если да, то можно воспользоваться IBUpdeteSQL и в нем прописать все SQL запросы к базе (вставка, удаление,...) Если выборка из разных баз, то можно завести еще один Query в котором исполнять нужные тебе запросы....


 
OlegE ©   (2002-03-21 13:34) [2]

Ты подумай хорошенько: нужно-ли тебе удалять обработанную запись, ее ведь не восстановишь?! И если удалять, то зачем ее обрабатывать.
Извини за сарказм, но наверное, задача сформулирована не совсем корректо.


 
Onix ©   (2002-03-21 13:47) [3]

Ee нужно удалить только из полученног НД, а не из таблицы. Мне нужно полученный НД распечатать. Для этих целей использую EhLib (по моему очень удобно.)


 
fnatali ©   (2002-03-21 13:51) [4]

>Так вот пробегая по всем записям нахожу одинаковые записи с >наим.товаров и складываю кол-во проданных.
А прямо в запросе нельзя сразу сложение одинаковых товаров сделать?
select tovar,sum(kolich) from table1 group by tovar


 
Alexandr ©   (2002-03-21 14:00) [5]

ну так тогда исключение это "Cannot delete from dataset. (No delete query)" просто загаси


 
Onix ©   (2002-03-21 14:02) [6]

>Alexandr ©
Это как? А что произойдет с записью?


 
Alexandr ©   (2002-03-22 06:49) [7]

да ничего не случится : в базе останется, у тебя в гриде исчезнет

try
...
except
end


 
onix ©   (2002-03-22 07:33) [8]

>Alexandr ©
В этом случае программа просто циклится.


 
Alexandr ©   (2002-03-22 07:55) [9]

почему?
в локальном датасете запись удалится, а на сервере останется. Разве не это тебе надо?



 
onix ©   (2002-03-22 08:35) [10]

Именно это, но найдя две одинаковые записи они бесконечно складываются.


 
Alexandr ©   (2002-03-22 08:44) [11]

не понял.


 
onix ©   (2002-03-22 08:51) [12]

Мне думается, что при возникновении исключения операция Delete отменяется и никакого удаления не происходит, а соответственно и перехода на другую запись, вот программа и циклится.


 
fomstas ©   (2002-03-22 09:47) [13]

А ты делай Delete отдельным Query
а потом транзакцию RollBack; И все


 
onix ©   (2002-03-22 09:56) [14]

>fomstas
Теперь и я не понял. Можно подробней?


 
Alexandr ©   (2002-03-22 11:09) [15]

2fomstas: ему изменения в базе ненадо делать, ему локально надо.
2onix: Chached Updates включи, а вообще, тебе кажется или на самом деле так происходит


 
onix ©   (2002-03-22 12:28) [16]

>Alexandr ©
Нет не кажется, весь этот "беспредел" видно на мониторе.
Послушай, а может я зря стараюсь. Прочел в книге, что это работает если select был из одной таблицы, а у меня из двух.
А вот вопрос, если проделать все это через StringGrid, можно ли затем полученный StringGrid поместить в DBGridEh чтоб распечатать ?


 
Alexandr ©   (2002-03-22 12:37) [17]

тогда уж через компонент TMemTable кажется так он называется...



 
onix ©   (2002-03-22 12:59) [18]

>Alexandr ©
Who is it ?


 
Fareader ©   (2002-03-22 13:05) [19]

Почему не попробовать такой вариант:
Берем Query, включаем у него кеш, подключаем к нему UpdateSQL,
удаляем все что нам нужно, а вот Apply не делаем. В таком случае локально Query этих записей видеть не будет, потому что с его точки зрения они удалены, а вот на сервере все в целости и сохранности.


 
Alexandr ©   (2002-03-22 13:09) [20]

2Fareader: вот это я ему и объясняю... Наверное непонятно.
2onix:а что по названию тяжело догадаться?



Страницы: 1 вся ветка

Текущий архив: 2002.04.11;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.013 c
1-32731
rog
2002-03-30 09:06
2002.04.11
Событие OnkeyDown


1-32866
LazorenkoX
2002-03-29 13:03
2002.04.11
file of XXX


14-32942
SV
2002-03-02 19:15
2002.04.11
WinXP. Что дальше?


14-32973
limon
2002-03-05 11:19
2002.04.11
Создание экземпляра класса по имени (ClassRef)


1-32843
snoup
2002-03-29 09:54
2002.04.11
Дайте пожалуйста пример как создавать и загружать какие то данные