powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ошибка и его обработка
26 сообщений из 26, показаны все 2 страниц
ошибка и его обработка
    #36378881
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При нажатие на кнопку должен работать такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
bir= 1 
SELECT  5 
APPEND BLANK
REPLACE mushteri_k WITH thisform.text2.Value,  zeng_eden WITH thisform.text13.Value, mushteri_a WITH thisform.text5.Value,;
mushteri_u WITH thisform.text6.Value, mushteri_z WITH  thisform.combo8.Value, qaime_n WITH  thisform.text3.Value, telefon with thisform.text4.Value,;
sif_kod WITH thisform.text34.Value, dx WITH "D", qebul_ed WITH thisform.text20.Value,  catdirilma WITH thisform.text21.Value,;
alan_a WITH thisform.text8.Value,  alan_u WITH thisform.text9.Value, alan_t WITH thisform.text1.Value, alan_r WITH thisform.combo6.Value, alan_z WITH thisform.combo4.Value,;
kod_qeyd WITH val(thisform.combo5.Value), qeyd WITH thisform.text7.value, say_mektub WITH thisform.text12.value, zerf_qiy WITH thisform.text10.value, baqlamalar WITH thisform.text14.value,;
um_ceki WITH thisform.text15.value, xidm_novu WITH thisform.combo1.value, qiymet WITH thisform.text22.value, el_xid_n WITH thisform.text23.value,  daxtel WITH thisform.text27.value;
xus_qiy WITH thisform.text17.value, guzeshtm WITH thisform.text77.value, guzeshtf WITH thisform.text18.value, cemi WITH  thisform.text24.value, edv WITH thisform.text25.value, yekun WITH thisform.text26.value,;
icinde WITH  thisform.text19.value, kuryer_adq WITH thisform.text11.Value, kuryer_adc WITH thisform.text16.Value
REPLACE kuryer_kq WITH  VAL(thisform.combo2.value), kuryer_kc WITH VAL(thisform.combo2.value)
REPLACE BANK_AD WITH BANK_AD1, BANK_KOD WITH BANK_KOD1, BANK_VOEN WITH BANK_VOEN1, HES_HESABI WITH HES_HESABI1, MUX_HESABI WITH MUX_HESABI1, swift WITH swift1, voen WITH voen1

IF IMTINA="Imtina".or.qaime_n= 0 
 REPLACE cemi WITH  0 , yekun WITH  0 
endif 
bbaxish1= 0 
thisform.release()
do form baxish

И можно сказать что нормально работает. Но, иногда (очень редко) получается примерно такая ошибка и сразу же программа заканчиваеть свою работу:
"Номер записи 6 Форма или 1 из его тренов загрузка форма или сред данных несовпедения типа оператора и операнда."
Это ошибка очень редко получается (но, очень мешаеть), и неизвестно когда будеть, поэтому не могу найти причину.

Помогите пожалуйста, где моя ошибка здесь и как могу исправит это?

И ЕЩЕ 1 ВОПРОС: Как можно эта ошибку обработовать, т.е., когда эта ошибка получится какой-то сообщение давать и не выйти из программы?
Помогите пожалуйста.
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36378987
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andres N.При нажатие на кнопку должен работать такой код:
...
REPLACE mushteri_k WITH thisform.text2.Value, zeng_eden WITH thisform.text13.Value, mushteri_a WITH thisform.text5.Value,;
...
Помогите пожалуйста, где моя ошибка здесь и как могу исправит это?

И ЕЩЕ 1 ВОПРОС: Как можно эта ошибку обработовать, т.е., когда эта ошибка получится какой-то сообщение давать и не выйти из программы?
Да здесь и не нужна обработка ошибки, её и так можно найти в этом жутком REPLACE и исправить. Просто в какое-то из полей подставляется неподходящее по типу значение.
Например, в REPLACE mushteri_k WITH thisform.text2.Value поле mushteri_k - символьное, а в него пытаются занести число из thisform.text2.Value. Или наоборот. Надо проверить тип всех полей и сравнить с типами записываемых значений.
Только не убеждайте себя и всех, что все поля и передаваемые в них значения абсолютно одинакового типа.
И замените вы этот дикий REPLACE (или вообще весь подход к задаче) на что-то более компактное, чтобы потом не мучаться и искать в таком коде ошибку.
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36379025
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
относительно глобальной обработки ошибок

http://sql.ru/forum/actualtopics.aspx?search=%E3%EB%EE%E1%E0%EB%FC%ED%FB%E9+%EE%E1%F0%E0%E1%EE%F2%F7%E8%EA+%EE%F8%E8%E1%EA%E8&bid=37

также в фокспро есть такое понятие, как локальная обработка ошибки.

ошибки не борят, а создают какой-то интерфейс, который
помогает проанализировать ситуацию
и быстро принять меры к решению проблемы.
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36379026
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
reware
Просто в какое-то из полей подставляется неподходящее по типу значение.


Дело в том что, эта ошибка не всегда получается, поэтому я так думал (типы же не меняется в программе)

reware
Да здесь и не нужна обработка ошибки

Это я не только для этого случае, просто хотел узнать как обработаваеть ошибку.
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36379030
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rewareИ замените вы этот дикий REPLACE (или вообще весь подход к задаче) на что-то более компактное, чтобы потом не мучаться и искать в таком коде ошибку.
+1024. ControlSource для того и прмдуман.

Код: plaintext
do form baxish
Название формы не может не радовать xD

Обработку ошибки в общем случае можно засунуть в
TRY
ENDTRY
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36379033
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Andres N.

также совет, оформляйте свой код некоторым образом(способом),
который помогает проще сопровождать код

Код: plaintext
1.
2.
3.
replace  ttt  with ppp ;
         ,  kkk with ggggggg ;
         ,  ....
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36379044
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо
Код: plaintext
1.
2.
3.
replace  ttt  with ppp ;
         ,  kkk with ggggggg ;
         ,  ....


Спасибо, за совет.
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36379058
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
reware
Только не убеждайте себя и всех, что все поля и передаваемые в них значения абсолютно одинакового типа.


Я не убеждаю этого, только мне не понятно тогда почему это ошибка каждый раз не получается?
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36379065
GermanGM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andres N.,
replace честно отрабатывает вплоть до момента возникновения ошибки "Data type mismatch". Наверное стоит посмотреть "по горячим следам", на каком поле он остановился
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36379084
Andres N.reware
Только не убеждайте себя и всех, что все поля и передаваемые в них значения абсолютно одинакового типа.


Я не убеждаю этого, только мне не понятно тогда почему это ошибка каждый раз не получается?

Такое может быть, например, когда юзер введёт цифру там, где раньше вводил символ, или наоброт.
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36379108
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я сейчас проверил что когда эта ошибка получается не записивается ( не работает) следующие replace, т.e, эти поле пусто бываеть, остальные нет:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
REPLACE  mushteri_k WITH thisform.text2.Value, ;
                zeng_eden WITH thisform.text13.Value,;
                mushteri_a WITH thisform.text5.Value,;

REPLACE BANK_AD WITH BANK_AD1, ;
               BANK_KOD WITH BANK_KOD1,;
               BANK_VOEN WITH BANK_VOEN1,;
               HES_HESABI WITH HES_HESABI1, ;
               MUX_HESABI WITH MUX_HESABI1,;
               swift WITH swift1,;
               voen WITH voen1

Это как-то может помоч мне? Можно до replace проверить это и если есть несовподение дать сообщение об этом ?
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36379120
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шестипалов
Такое может быть, например, когда юзер введёт цифру там, где раньше вводил символ, или наоброт.

Да, этого может быть. Тогда, что можно делать в этом случае?
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36379129
Andres N.Да, этого может быть. Тогда, что можно делать в этом случае?
Проверять корректность ввода данных. Либо перед реплейсом, либо в методе Valid.

А вообще, Вам уже посоветовали использовать свойство ControlSource.
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36379138
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ШестипаловПроверять корректность ввода данных. Либо перед реплейсом, либо в методе Valid.

Помогите пожалуйста, как это делаются? Если можно на примерах пожалуйста.
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36379288
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПомогите пожалуйста, как это делаются? Если можно на примерах пожалуйста.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
local lnValue
lnValue = thisform.text1.value

if varty(lnValue) <> "N"
   messageb("Пользователь - ты был не прав!")
   retu .f.
else
   insert into ttt    (ppp) ;
                values (lnValue)
endif

...
Рейтинг: 0 / 0
ошибка и его обработка
    #36383610
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне надо проверить 3 поле (mushteri_k, zeng_eden, mushteri_a) сразу.
Я делаю вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
IF TYPE('baza.mushteri_k')<>TYPE('thisform.text27.Value').or.TYPE('baza.zeng_eden')<> TYPE('thisform.text13.Value').or.TYPE('baza.mushteri_a')<>TYPE('thisform.text5.Value')
	MESSAGEbox('Пользователь - ты был не прав!')
	thisform.text27.SetFocus()
else
	SELECT  5 
               REPLACE .............
                              .............
	do form baxish
endif
Так правильно будеть? Еще раз хочу сказать это проблема не каждый раз получается, поэтому трудно мне уловить это. После этого изминение пока не вышло. Но, нельзя пока ничего сказать.
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36383690
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТак правильно будеть?

нет.

извините, но стиль Вашей разработки - это насилие над фокспро и собой (тобишь садомазо.)

во-первых: тайп стараемся применять реже - есть ф-я vartype()

во-вторых: можно разработать так форму и проинициализировать контролы,
что в них никогда не будет неверного типа.
если вам хочется что-то вводить - ну создать курсор пустой
и поля его уже присвоить контролсоурсам контролов

в-третьих:
Код: plaintext
TYPE('baza.mushteri_k')<>TYPE('thisform.text27.Value')

Вы явно не знаете тип 'baza.mushteri_k'? или это мутирующее поле в какой-то таблице,
которое меняет постоянно свой тип и т.д.
па-руцки пишется так, ну если уж хочется заняться садомазо:
Код: plaintext
1.
2.
  
if vartype(thisform.text27.Value)<>"C" or ....
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36385795
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я совсем недавно занимаюс с фокспро, например vartype я незнал.
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36385803
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимоВы явно не знаете тип 'baza.mushteri_k'?

Знаю. Тогда, наверно так будеть правильно. (Или опять что-то не так?)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
m_k1=thisform.text2.Value
z_e1=thisform.text13.Value
m_a1=thisform.text5.Value
if varty(m_k1) <> "N".or.varty(z_e1)<>"C".or.varty(m_a1)="C"
	MESSAGEbox('Пользователь - ты был не прав!')
	thisform.text27.SetFocus()
else
	SELECT  5 
               REPLACE .............
                              .............
	do form baxish
endif
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36385855
Andres N.,

поведайте миру, какая религия вам запрещает использовать свойство ControlSource?
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36385896
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ШестипаловAndres N.,

поведайте миру, какая религия вам запрещает использовать свойство ControlSource?

Наверно, неправилный метод, но я использую
Код: plaintext
TABLEUPDATE(.T.,.T.,"baza")
,
для добавление записи в таблицу (до нажатие кнопку записи не должно добавлятся в таблицу). Поэтому использую REPLACE
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36385930
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никто не мешает откатить изменения в случае отмены необходимости сохраняться

либо

scatter memvar
затем переменные памяти привязать к контролам

либо
select * from ... into cursor ...
appe blank
поредактировать во временном курсоре
и затем уже из отредактированного
перелить в основной
insert into
select * from
и уже изменения в основном провалить в основную табличку
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36386021
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо, спасибо за совет. Попробую это сделать. Но, хочу еще раз спрашивать в моем случае это ошибка еще раз может получится? Просто мне очень интересно это узнать и честно говоря если ошибка не получится хочу оставить как есть.
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36387711
Andres N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимоникто не мешает откатить изменения в случае отмены необходимости сохраняться

Я незнал что это возможно.
Это как? Обясните пожалуйста, на примерах если не трудно.
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36389206
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Andres N.,

обратите внимание на пункт меню:
"Редактирование св-в курсорадаптеров"

в данном примере показано каким образом редактировать список
и каким образом привязывать контролы к источникам,
сохранять или выполнять отмену(не сохранять....)


вычленять ничего не буду и каких-то простых примеров рисовать не стану,
даю "в куче" пример разработки каких-то ... посредством приемов ООП
и сипользования классов курсорадаптеров.
в данном приложении в целом показан способ построения проектов,
посредством которого создаются универсальные настраиваемые сущности

первая часть марлезонского балета
...
Рейтинг: 0 / 0
ошибка и его обработка
    #36389207
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вторая часть марлезонского балета
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ошибка и его обработка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]