Форум: "Базы";
Текущий архив: 2003.12.19;
Скачать: [xml.tar.bz2];
ВнизПроблемы c Post Найти похожие ветки
← →
Крутыш (2003-11-23 12:46) [0]Пишу складскую программу. База Access.
Вызываю форму для редактирования какого - то продукта питания.
Ссылаюсь на AdoTtable из той формы (эта форма просто
для просмотра товаров, поиска ....), из которой вызвал
форму для редактирования продукта.
1 вопрос.Когда перемещаюсь по DBEdit-ам в форме для редактирования,
ну типа наименование, серия, страна происхождения, единица измерения и т.д, вызывается метод post, хотя я его нигде не указывал. И изменения происходят в форме для просмотра.
Нужно же спросить пользователя желает ли он сохранить изменения. Автоматическое сохранение не надо.
2. вопрос. Если указываю Form2.adotable1.edit или Form2.adotable1.insert в форме для редактирования происходит ошибка. В родной форме всё нормально.
← →
sniknik (2003-11-23 13:09) [1]> 1 вопрос
метод post вызывается кучей функций First, Next, Pred, Last ...
если хочеш запись только после подтверждения нужно менять логику программы, использовать оторванный/нередактируемый датасет либо посредника типа ClientDataSet запись делать после подтверждения руками(запрограммировать самому)/или ApplyUpdates второй случай.
> 2. вопрос
ошибка в 17й строке?
← →
Крутыш (2003-11-23 13:12) [2]нет не 17 стрка!
Ошибка по адресу FFFFFFFFF
и указывает на Form2.adotable1.edit.
← →
Anatoly Podgoretsky (2003-11-23 13:13) [3]Это не 17 строка
← →
sniknik (2003-11-23 13:16) [4]Крутыш © (23.11.03 13:12) [2]
а полностью?
небось чтото вроде "access violetion ..... FFFFFFFFF"
обрашение к несозданому/уничтоженному обьекту.
← →
Крутыш (2003-11-23 13:47) [5][4]Sniknik, точно без базара, такая ошибка " access violetion ..... FFFFFFFFF".Чего делать?
← →
Anatoly Podgoretsky (2003-11-23 14:02) [6]Ну чего, вешаться конечно или sniknik © (23.11.03 13:16) [4]
← →
Крутыш (2003-11-23 14:08) [7]А если Dataset использовать.
SQl нужно класс как знать???
У меня книга большая есть!!!
Да я и знаю его немного!!
← →
Anatoly Podgoretsky (2003-11-23 14:25) [8]Ну хорошо, дело твое, не хочешь как хочешь, наше дело предложить, ваше отказаться.
← →
Крутыш (2003-11-23 21:22) [9]Отвечаю сам на поставленный вопрос:
чтобы обойти такую ошибку "access violetion ..... FFFFFFFFF"
используйте DataModule.
← →
Крутыш (2003-11-23 21:27) [10]Продолжение 1 вопроса.
Не получилось у меня ничего с Dataset.
Когда перемещаешся по dBedit - ам срабатывает метод Post.(т.е.
когда перемещаешся по полям записи).
А как сделать так, чтобы метод Post срабатывал при перемещениях
по записям, а не по полям.
← →
Наталия (2003-11-24 06:15) [11]Смотри
sniknik © (23.11.03 13:09) [1]
> 1 вопрос
← →
ЮЮ (2003-11-24 09:21) [12]>Когда перемещаешся по dBedit - ам срабатывает метод Post
Только не само собой. Смотри свои обработчики. Добавь onAfterPost и трассировкой отследи откуда из твоего кода он вызван
← →
Крутыш (2003-11-26 08:58) [13]ЮЮ[12]Нет у меня никакого кода, где был бы указан метод post?
← →
Johnmen (2003-11-26 09:20) [14]>Крутыш © (26.11.03 08:58)
>Нет у меня никакого кода, где был бы указан метод post?
Очень сложный вопрос...Надо подумать...:)
Ничего не получается, не видно кода.
Но если его и нет, то это не значит, что он не вызывается.
← →
AbrosimovA (2003-11-26 09:23) [15]
> Крутыш © (26.11.03 08:58) [13]
> ЮЮ[12]Нет у меня никакого кода, где был бы указан метод
> post?
Напрямую - нет, а косвенно - да.
← →
grusty (2003-11-26 09:37) [16]-->Крутыш
При перемещении по DBEdit метод Post не вызывается, т.е. если Вы вызовите метод ADOTable.Cancel (напримет нажатием кнопки "Отмена" на форме), то данные не сохранятся.
← →
sniknik (2003-11-26 09:45) [17]Крутыш © (23.11.03 21:22) [9]
> Отвечаю сам на поставленный вопрос:
> чтобы обойти такую ошибку "access violetion ..... FFFFFFFFF"
> используйте DataModule.
частность.
более обшее и правильное решение, не обращайтесь к компонентам до их создания или после уничтожения.
Крутыш © (26.11.03 08:58) [13]
точно нету? а грид на форме лежит? потому как если dBedit не меняет запись то грид меняет и соответственно Post вызывается если изменения были.
← →
Крутыш (2003-11-26 10:47) [18]sniknik[17] Грид, да есть лежит у меня на форме.
← →
Sandman25 (2003-11-26 10:56) [19]1 вопрос
BeforePost:
if not (вывод сообщения и запрос на запись подтвержден) then
Cancel;
← →
sniknik (2003-11-26 11:50) [20]Крутыш[18]
это был не вопрос это был ответ. который кстати повторяется в разных формах с ответа N [1].
не пытайся "боротся" с Post, лутше поменяй логику. Post же делается тоже не просто так, если сделаеш как Sandman25 © (26.11.03 10:56) [19] нарвешся на другие проблемы, каждую запись придется подтверждать, может это где и нужно но похоже не в твоем случае, как я понял нужно подтверждение "скопом" по всем записям в форме(что в гриде), а без буфера в любой форме этого не сделаеш, даже отказавшись воспринимать обьективную реальность данную нам в виде Post.
← →
Sandman25 (2003-11-26 12:01) [21][20] sniknik © (26.11.03 11:50)
Всегда можно выкрутиться. Например, можно переменные завести.
Before Post:
if not ConfirmShown then
begin
if (подтверждение) then
PostConfirmed := True
else
Cancel;
ConfirmShown := True;
end
else
if not PostConfirmed then
Cancel;
Но с другой стороны, может лучше логику программы изменить. Зависит от логики программы :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.12.19;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.009 c