Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataSet.Cancel (Ms SQL, ADO), Проблемы с отменой Post insert 
:(
    Опции темы
Принцессочка
Дата 5.3.2009, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.3.2009
Где: Пермь

Репутация: нет
Всего: нет



В датасэте в событии BeforePost установила проверку на правильность вводимых данных пользователем.


Код

If (NOT ок ) tnen
 DataSet.Cancel


Когда срабатывает метод Cancel, в таблицу пытается сделать insert последней записи в DataSet(не ту которую заводил пользователь, а которая уже была в таблице).

В общем вопрос, почему так?

P.S. Просьба не предлагать установить ограничения на поля в таблице.

Это сообщение отредактировал(а) Принцессочка - 5.3.2009, 09:34
PM MAIL ICQ   Вверх
~FoX~
Дата 5.3.2009, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 4
Всего: 68



Принцессочка, Мало кода....Не понятно, как пользователь вводит данные, какие контролы используются, как вообще к базе подключаешься....

Проверь не обрабатвыаеться ли AfterCancel...
Попробуй вместо Cancel использовать Abort....

Это сообщение отредактировал(а) ~FoX~ - 5.3.2009, 10:07


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Akella
Дата 5.3.2009, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(~FoX~ @  5.3.2009,  10:06 Найти цитируемый пост)
Попробуй вместо Cancel использовать Abort....

правильнее сказать: вместо DataSet.Cancel использовать abort
PM MAIL   Вверх
Принцессочка
Дата 5.3.2009, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.3.2009
Где: Пермь

Репутация: нет
Всего: нет



Метод Abort не нашла.
Использую кампаненты
TTable
Редактирую через DBgrid

Это сообщение отредактировал(а) Принцессочка - 5.3.2009, 11:38
PM MAIL ICQ   Вверх
Kbl4AH
Дата 5.3.2009, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(Принцессочка @  5.3.2009,  09:28 Найти цитируемый пост)
Когда срабатывает метод Cancel, в таблицу пытается сделать insert последней записи в DataSet(не ту которую заводил пользователь, а которая уже была в таблице).

Цитата(Принцессочка @  5.3.2009,  11:33 Найти цитируемый пост)
Использую компанентыTTaидуTTableРедактирую через DBgrid

так что все-таки используешь?
Еще не поянисла какое действие осуществляет пользователь (редактирование записи или вставку новой?)!
Я так понял, что вставку...
Имхо разреши вставку, потом делай проверку корректности вставленной записи и, если она не корректна, то удаляй ее...
PM MAIL ICQ   Вверх
~FoX~
Дата 5.3.2009, 11:59 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 4
Всего: 68



Цитата(Принцессочка @  5.3.2009,  12:33 Найти цитируемый пост)
Метод Abort не нашла.

"
то не метод датасета

HELP:
Цитата

This example checks for a valid entry in a TDBEdit control and calls the Abort procedure if the control is empty; Abort cancels the post before it happens.

Код

procedure TForm1.MyDataBeforePost(DataSet: TDataSet);

begin
if DBEdit1.Text = '' then
  Abort;

end;


Цитата

Имхо разреши вставку, потом делай проверку корректности вставленной записи и, если она не корректна, то удаляй ее...

Угу, и и при попытке в поле с датой ввести букву зю, вроде как ничего и не произойдет?  smile 

Это сообщение отредактировал(а) ~FoX~ - 5.3.2009, 12:00


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Принцессочка
Дата 5.3.2009, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.3.2009
Где: Пермь

Репутация: нет
Всего: нет



Цитата

Я так понял, что вставку...

Да!

Цитата

Имхо разреши вставку, потом делай проверку корректности 


Это решение, но не подходит. Не удобно

Меня больше интресует почему делает insert при Cancel, притом insert предыдущей строки в таблице, а не то что пользователь ввел.

событий на OnCancel нет

PM MAIL ICQ   Вверх
~FoX~
Дата 5.3.2009, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 4
Всего: 68



Принцессочка, выложи куда нить модуль.....или код модуля....

Цитата(Принцессочка @  5.3.2009,  13:00 Найти цитируемый пост)
событий на OnCancel нет


У какого контрола? У TTable, DataSet???
А BeforCancel, AfterCancelб Befor\AfterEdit\Insert?


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Принцессочка
Дата 5.3.2009, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.3.2009
Где: Пермь

Репутация: нет
Всего: нет



Цитата(~FoX~ @ 5.3.2009,  12:08)
У какого контрола? У TTable, DataSet???
А BeforCancel, AfterCancelб Befor\AfterEdit\Insert?

У TTable.
Есть только событие BeforePost.
PM MAIL ICQ   Вверх
~FoX~
Дата 5.3.2009, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 4
Всего: 68



В DataSeurce какой нить onUpdate не обрабатываеться?......
И выложи уже код....или это комерческая тайна?


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Принцессочка
Дата 5.3.2009, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.3.2009
Где: Пермь

Репутация: нет
Всего: нет



Цитата(~FoX~ @ 5.3.2009,  12:42)

И выложи уже код....или это комерческая тайна?

Ага
PM MAIL ICQ   Вверх
Данкинг
Дата 5.3.2009, 13:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Принцессочка @  5.3.2009,  12:50 Найти цитируемый пост)
Ага 

Да, представляешь, что станется, если ваши конкуренты наконец-то узнают, что существует метод DataSet.Cancel ! smile smile


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Принцессочка
Дата 5.3.2009, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.3.2009
Где: Пермь

Репутация: нет
Всего: нет



Цитата(Данкинг @ 5.3.2009,  13:05)

Да, представляешь, что станется, если ваши конкуренты наконец-то узнают, что существует метод DataSet.Cancel 

Какие мы остроумные...........
Но у нас нет конкурентов.

Добавлено через 11 минут и 32 секунды
Цитата(~FoX~ @ 5.3.2009,  12:42)
В DataSeurce какой нить onUpdate не обрабатываеться?......

Займусь ка я этим завтра, а то уже ничего в голову не лезит , да и устала.
PM MAIL ICQ   Вверх
Данкинг
Дата 5.3.2009, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Принцессочка @  5.3.2009,  13:10 Найти цитируемый пост)
Но у нас нет конкурентов.

Конечно, какие же конкуренты у прЫнцесс. smile  smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0559 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.