PUT не путкает. Почему?

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

PUT не путкает. Почему?

Сообщение optron »

Clarion 5.5 EE
Есть вот такой кусок кода:

KNI:INVNO=PRI:Kod
get(Kniga,KNI:KeyINVNO)
if ~error()
KNI:Kolvo=KNI:Kolvo-Kolvo
KNI:Sum=KNI:Sum-Summ
put(Kniga)
Message('Error - '&errorcode()&'|')
else
Message('Запись не найдена'&'|','Ошибка!',ICON:Exclamation)
.

к put - у доходит, мессейджем проверяю в этот момент KNI:Kolvo = 0. В базе остается KNI:Kolvo=1. errorcode() после PUT =0.

В чем может быть проблема?
Аватара пользователя
ShilakAV
Бывалый
Сообщения: 57
Зарегистрирован: 25 Декабрь 2005, 9:55
Откуда: Амурская область
Благодарил (а): 2 раза

Сообщение ShilakAV »

а ты после put поставь - if errorcode() then message(error()).
мож дублирование ключей...
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

Сообщение optron »

Так ить errorcode() 0 кажет. Следовательно нет ошибки то ...
За... уже. 2-й день сижу над какой то фигней и всё без толку.
Аватара пользователя
StillZero
Ветеран
Сообщения: 458
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Поблагодарили: 1 раз
Контактная информация:

Сообщение StillZero »

дело не в PUT
см. в другую сторону

сделай мелкую приладу чистую и напиши там этот код...
думаю он будет работать
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Сообщение Игорь Столяров »

Или попробуй заблокировать файл на момент выполнения
операции. Для TPS, наверно проще всего:

Logout(MyFile,1)
If ErrorCode() then Stop('Logout ?!').

....

PUT(MyFile)

Commit
If ErrorCode() then Stop('Commit ?!').
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

Сообщение optron »

Бесполезно. и с Logout не работает. Вообще интересно - если в файле Kniga непустое стринговое поле KNI:Otdel, то не работает. А вот если KNI:Otdel пустое (='' ), то всё отрабатывает. А причем тут вообще это поле - непонятно. Причем перед GET - ом делаю clear(KNI:Record), всё равно не работает.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Сообщение Игорь Столяров »

1. А проверь описание структуры таблицы ... Может быть там просто есть наложение полей (OVER) ?

2. Попробуй удалить физический файл, создать его заново и попробовать работу кода. У меня были проблемы с записью (и тоже без ошибок) при частичном разрушении ключа ...
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

Сообщение optron »

Игорь Столяров писал(а):1. А проверь описание структуры таблицы ... Может быть там просто есть наложение полей (OVER) ?
Наложение полей - это как? Можно поподробнее

Создал вообще новый файл. Внес туда всего одну запись. Всё равно не работает.
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Сообщение Yufil »

optron писал(а):
Игорь Столяров писал(а):1. А проверь описание структуры таблицы ... Может быть там просто есть наложение полей (OVER) ?
Наложение полей - это как? Можно поподробнее

Создал вообще новый файл. Внес туда всего одну запись. Всё равно не работает.
Структуру БД- в студию!
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

Сообщение optron »

Yufil писал(а): Структуру БД- в студию!
Kniga FILE,DRIVER('TOPSPEED'),PRE(KNI),CREATE,BINDABLE,THREAD
KeyOtdel KEY(KNI:Otdel),DUP,NOCASE,OPT
KeyPodr KEY(KNI:KodPodr),DUP,NOCASE,OPT
KodDia_Key KEY(KNI:KodDia),DUP,NOCASE,OPT
KeyINVNO KEY(KNI:INVNO),NOCASE,OPT
KeyAvtor KEY(KNI:Avtor),DUP,NOCASE
KeyNazv KEY(KNI:Nazv),DUP,NOCASE
Record RECORD,PRE()
Num ULONG
INVNO ULONG
Avtor STRING(30)
Nazv STRING(100)
Otdel STRING(40)
KodPodr USHORT
Fam_Pol STRING(20)
PoluchVP STRING(40)
FIOVP STRING(20)
Data_p DATE
Cena DECIMAL(9,2)
Kolvo LONG
Sum REAL
Debet STRING(20)
Kredit STRING(20)
PrizBIS STRING(1)
Dat_Spis DATE
Dat_vp DATE
KodDia USHORT

Нету по ходу OVER - ов тут никаких.
Аватара пользователя
ShilakAV
Бывалый
Сообщения: 57
Зарегистрирован: 25 Декабрь 2005, 9:55
Откуда: Амурская область
Благодарил (а): 2 раза

Сообщение ShilakAV »

я бы на твоем месте не стал в с5.5 использовать названия полей типа Dat_Spis и Dat_sp в одной таблице. Как то помню глюков с этим наловил немерянно. Именно в 5.5 такое творилось. Посмотри во вьевере как названия этих полей выглядят - убедишься...
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

Сообщение optron »

ShilakAV писал(а):я бы на твоем месте не стал в с5.5 использовать названия полей типа Dat_Spis и Dat_sp в одной таблице. Как то помню глюков с этим наловил немерянно. Именно в 5.5 такое творилось. Посмотри во вьевере как названия этих полей выглядят - убедишься...
А в чем проблема - в нижнем слеше?
Аватара пользователя
ShilakAV
Бывалый
Сообщения: 57
Зарегистрирован: 25 Декабрь 2005, 9:55
Откуда: Амурская область
Благодарил (а): 2 раза

Сообщение ShilakAV »

А в чем проблема - в нижнем слеше?
ну...
но я ради эксперимента создал такой файл и проверил твой кусок кода - все работает. А ты пробовал как StillZero рекомендовал?
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

Сообщение optron »

ShilakAV писал(а):
А в чем проблема - в нижнем слеше?
ну...
но я ради эксперимента создал такой файл и проверил твой кусок кода - все работает. А ты пробовал как StillZero рекомендовал?
В том то и дело. Полный код эмбедза там с if -ами. Так вот такой код там встречается в ... 3-х местах. В 2-х отрабатывает прекрасно, в этом месте ну хоть тресни ничего не помогает. Уже голова чешется. Полный нервоз или невроз. Можно конечно плюнуть на всё и отключить кое - что, но тут уже дело принципа - или я его, или он меня.
Аватара пользователя
ShilakAV
Бывалый
Сообщения: 57
Зарегистрирован: 25 Декабрь 2005, 9:55
Откуда: Амурская область
Благодарил (а): 2 раза

Сообщение ShilakAV »

Честно говоря, никогда не встречал такого, чтобы если put не дал ошибку, то не произвел бы запись в файл :shock: . Может ты не тот файл смотришь? :)
Ответить