![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по IBDataset [D6, IB6.x]
ksa2002 © (2004-12-16 11:18:00)Есть несколько записей который правяться в DBGrid ручками .
Можно ли сделать так, чтобы все изменения заносились в кэш Dataser а у ж потом вызвав метод ApplayUpdate они записывались в базу ?(По умолчанию в кыше храниться только последния редактируемая запись)
msguns (2004-12-21 11:54:00) [1]У него SNAPSHOT в транзакции скорее всего.. И запрос не переоткрывается после апдейта.
Zacho (2004-12-21 11:27:00) [2]ksa2002 (17.12.04 9:27) [25]
Зря. Действительно зря. Лучше бы разобрался, почему у тебя не работает. У меня (и не только у меня) - работает, могу привести пример.
ksa2002 (2004-12-17 09:27:00) [3]Ну нафиг всё это . Сделал через Query и StoredProc
ksa2002 (2004-12-17 09:11:00) [4]Вручню это как ? Через консоль процедура выполняеться
ЮЮ (2004-12-17 08:57:00) [5]> в гридесответсвующие поля ( :A_MAIN,:TABLE1,:KOL,:PARAM_KOL)
>но изменения всеравно не происходят
попробуй выполнить ModidfySQL "вручную". Ну не может же процедура не выполниться, не огрызнувшись. Или может процедура так и задумана? :)
ksa2002 (2004-12-17 08:49:00) [6]какая разница ? пользователь не может его поменять как и увидеть
ЮЮ (2004-12-17 08:49:00) [7]В том смысле, что исправив его в гриде, на самом деле вызовешь процедуру фактически для другой строки :)
ЮЮ (2004-12-17 08:46:00) [8]Тогда почему оно в гриде?
ksa2002 (2004-12-17 08:43:00) [9]да ..первое значение это ключевое поле
ЮЮ (2004-12-17 08:42:00) [10]Это ты меня спрашиваешь? Я же не знаю, что у тебя за поля да таблицы? Я просто спрашиваю про логику твоей процедуры: "Она действительно зная только новые значения параметров может адекватно исправить необходимые таблмцы?"
ksa2002 (2004-12-17 08:38:00) [11]тогда как связать его с ключевым полем ?
ЮЮ (2004-12-17 08:34:00) [12]А как, интересно, процедура может найти запись, которую изменили, по новым значениям полей? Где ключевое поле?
ksa2002 (2004-12-17 08:33:00) [13]автоматом в тразакциях стоят , всё в dataset работает кроме того
случаю когда подставляю ХП в модификацию
Zacho (2004-12-17 08:31:00) [14]Ну не знаю. У меня всё работает. Попробуй поставить последний апдейт IBX.
> вот если подставляю вместо переменых занчения то
> ошибки нет , но изменения всеравно не происходят
Commit делаешь ?
ksa2002 (2004-12-17 08:16:00) [15]в ModifySQL написано
EXECUTE PROCEDURE VOZVRAT_NAKLAD (:A_MAIN ,:TABLE1,:KOL,:PARAM_KOL)
в гриде сответсвующие поля (:A_MAIN ,:TABLE1,:KOL,:PARAM_KOL)
вот если подставляю вместо переменых занчения то ошибки нет , но изменения всеравно не происходят
Zacho (2004-12-17 07:19:00) [16]Насчёт CachedUpdates я наврал. В TIBDataSet всё должно быть нормально, хоть с CachedUpdates, хоть без. Это в TIBQuery не получиться использовать ХП.
Так что показывай код, всё должно работать.
> и ещё вопрос как забокировать возможность вставки
>новой записи в
> Dataset ?
В BeforeInsert вызови Abort;
ksa2002 (2004-12-17 06:57:00) [17]и ещё вопрос как забокировать возможность вставки новой записи в
Dataset ? (чтоб вообще не была доступна это возможность для пользователя)
ksa2002 (2004-12-17 06:55:00) [18]не использую
Zacho (2004-12-17 06:47:00) [19]CachedUpdates используешь ?
Если да, то отключи.
ksa2002 (2004-12-17 05:56:00) [20]Подставил в ModifySQL вот такую вещь
EXECUTE PROCEDURE VOZVRAT_NAKLAD (:A_MAIN ,:TABLE1,:KOL,:PARAM_KOL)
как только вношу изменения и перемещаюсь на следующую строчку (т.е. данные скидываються в буфер) выскакивает ошибка
Empty SQL Statement.