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

Вниз

Проблемы 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.021 c
1-62141
loki128
2003-12-07 12:54
2003.12.19
COM


8-62164
Novenkij
2003-08-22 22:22
2003.12.19
Монохромный JPEG


3-61956
n13
2003-11-26 14:43
2003.12.19
командная строка


14-62232
Е-Моё имя
2003-11-25 11:47
2003.12.19
Курение предохраняет от шизофрении


4-62312
zdn
2003-10-25 18:17
2003.12.19
Блокировка файла