Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];

Вниз

Поиск ошибки   Найти похожие ветки 

 
Alex7   (2006-05-03 15:14) [0]

Уважаемые мастера! Ищу следующую ошибку:
 
  На форме есть кнопка, в которой обработчик
"onClick" состоит из 1-го оператора:
 Table1.Next.
Этот оператор выполняетя, но затем
управление передается в обработчик другого
компонента(DBCheckBoxClick), оттуда
в следующий(DВEditChange) и так,погуляв,
возвращается на исходную точку.

Так происходит и для других команд навигации,
и в других обработчиках, где есть Table1.Next;
причем только на этой форме. На другой
форме для той же "Table1" все работает
нориально.
 Просмотрел события вклинившихся компонентов,
ничего не увидел.
Не могу сообразить где и как искать ошибку.
Может быть, что-нибудь подскажите.
Спасибо.


 
Плохиш ©   (2006-05-03 15:21) [1]


> На другой форме для той же "Table1"

Врёшь, это другая "Table1"

> Просмотрел события вклинившихся компонентов,
> ничего не увидел

Хм, может стоит очки риобрести?

> Не могу сообразить где и как искать ошибку

Осталось только озвучить, что за ошибку ищешь

> Может быть, что-нибудь подскажите

Если очки не помогут, то можно попробовать танцы с бубном.

PS. Интересно, кто-нибуть из "начинающих" знает для чего в делфи включён отладчик?


 
Alex7   (2006-05-03 15:28) [2]

> Осталось только озвучить, что за ошибку ищешь
 
Пытаюсь понять, что является причиной нарушение
нормальной последовательности выполнения операторов
и хочу эту причину устранить.


 
Плохиш ©   (2006-05-03 15:32) [3]


> Пытаюсь понять, что является причиной нарушение
> нормальной последовательности выполнения операторов

Про нарушение сам подумал или надоумил кто?

PS. см. PS из [1]


 
Alex7   (2006-05-03 16:04) [4]

Может быть можно было намекнуть,
каким средством отладчика имеет
смысл восползоваться.
По-моему ясно, что BreakPoint"ы
и пошаговое прохождение ничего
не дает.
 Полезным мог быть "EventLog",
если бы в нем отражался перечень
выполняемых событий. Но я
видно неправилно что-то
делаю.


 
Плохиш ©   (2006-05-03 16:13) [5]


> Пытаюсь понять, что является причиной нарушение
> нормальной последовательности выполнения операторов


> По-моему ясно, что BreakPoint"ы
> и пошаговое прохождение ничего
> не дает.

Често сказать, даже и не знаю чем Вам помочь, свечку если только поставить.

PS. Ctrl-Alt-S


 
Мефисто   (2006-05-03 16:15) [6]

Alex7   (03.05.06 16:04) [4]

Телепаты в отпуске. Код в студию


 
Alex7   (2006-05-03 16:25) [7]

Ну вот это другое дело.
Хорошо побеседовали. Спасибо.


 
Alex7   (2006-05-03 17:09) [8]

В продолжение не очень результативной беседы
возникло такое предположение.
 При навигации изменяются значения полей в
компонентах DBEdit и т.п., а значит появляются
события OnChange. Значит они и срабатывают?  
Так?. Тогда программа становится мало управляема.
А как эту ситуацию Заблокировать?


 
Плохиш ©   (2006-05-03 17:35) [9]


>  При навигации изменяются значения полей в
> компонентах DBEdit и т.п., а значит появляются
> события OnChange. Значит они и срабатывают?  

Да

> Тогда программа становится мало управляема.

Почему? Вы же представляете для чего использовали события OnChange

> А как эту ситуацию Заблокировать?

Не использовать события OnChange.
Т.к. Вы свою задачу держите в большом секрете, то можно только порекомендовать обратить своё внимания на события OnBeforePost и OnAfterScroll.


 
Alex7   (2006-05-03 18:03) [10]

> Вы свою задачу держите в большом секрете
Нет никаких секретов. Вопрос возник при реализации
попытки предотвратить внесение дублирующих записей.
Делать это в режимах dsInsert и dsEdit не получается,
т.к. нужно двигаться по таблице.
Не смог ничего придумать, кроме как занести, проверить
и если окажется дубль, то удалить.
Плохо, но ничего другого не пришло на ум. Буду рад,
если предложите что-нибудь получше.


 
Alex7   (2006-05-03 18:03) [11]

Удалено модератором


 
Плохиш ©   (2006-05-03 18:13) [12]


> Alex7   (03.05.06 18:03) [10]
> > Вы свою задачу держите в большом секрете
> Нет никаких секретов. Вопрос возник при реализации
> попытки предотвратить внесение дублирующих записей.

В событии OnBeforePost выполняете SQL-запрос в WHERE пишите условие для проверки введённых данных, если будет возвращена запись с данными, то говорите пользователю, что он не прав и выполняете функцию abort.

PS. Что за привычка пытаться совершить взаимоисключающие действия с одним набором данных?


 
Alex7   (2006-05-03 18:44) [13]

Спасибо. Надо переварить.
Но, на первый взгляд:
1.  При выборке тоже  происходит  навигация
    по таблице.
2. Дольше, чем по индексу.
3. В общем виде SQL сложнее, чем проверка
   по полям записи.


 
vovnuke ©   (2006-05-03 19:05) [14]

вообще я думал что за проверка правильности ввода того или иного значение в поле проверяется в OnValidate а не в OnChange.


 
sniknik ©   (2006-05-03 22:22) [15]

> попытки предотвратить внесение дублирующих записей.
рассекречена первая строчка первого листа тз.... ;о)

про ключи, уникальные индексы, не допускающие повторов без внещнего вмешательства в курсе? почитй в справке по все еще секретной БД.

p.s. пожелание: поменьше мутной воды, побольше ясности и кода...


 
Alex7   (2006-05-04 07:57) [16]

> про ключи, уникальные индексы
Спасибо. Вот это решение.
Ну, упустил из виду. Даже неловко
как-то. Подтверждается польза общения.



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

Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.014 c
15-1145264574
fast2
2006-04-17 13:02
2006.05.21
Вопрос знатокам физики.


3-1143795254
гога
2006-03-31 12:54
2006.05.21
Сортировка в TDBGridEh


15-1146022231
kobik...
2006-04-26 07:30
2006.05.21
помогите совсем немного по c++


2-1146743284
Andrey235
2006-05-04 15:48
2006.05.21
проблема с динамичным массивом


5-1132135864
Shopot
2005-11-16 13:11
2006.05.21
Где достать компоненты?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский