powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Записи в таблицу не проходят
12 сообщений из 12, страница 1 из 1
Записи в таблицу не проходят
    #33750562
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леди и джентльмены!
Не пойму, почему не работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
**  В Init формы **
= CURSORSETPROP('Buffering',  5 , 'table1') 

** В Click кнопки **
INSERT INTO table1(nIdCod,cGost,nNomer...) VALUES (pnIdCod, thisform.txtGost.Value, lnNomer...)
GO TOP IN table1
TABLEUPDATE(.t.)

Результат - записей в table1 нет ((((((((((((((((((((((((((
Вроде бы все сделала так, как уже много раз обсуждалось на форуме.

Благодарю.
...
Рейтинг: 0 / 0
Записи в таблицу не проходят
    #33750601
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что говорит

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
if !TABLEUPDATE(.t.)

aerror(arr)
for i =  1  to alen(arr)
?arr(i)
endfor

endif 
...
Рейтинг: 0 / 0
Записи в таблицу не проходят
    #33750614
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так проверь как отработала команда TableUpdate()

Код: plaintext
1.
2.
3.
4.
5.
6.
INSERT ...
IF TableUpdate(.T.,.T.) = .F.
	LOCAL laError( 1 )
	=AERROR(laError)
	* анализ массива laError для уточнения причины ошибки
ENDIF

Кстати, то, что ты не указала второй параметр в команде TableUpdate() - это специально? Хотя, для операций создания новой записи - это не принципиально.
...
Рейтинг: 0 / 0
Записи в таблицу не проходят
    #33750862
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To PaulWist & ВладимирМ

Нет, ничего не произошло. И в Debugger'е новая переменная не появилась - я так понимаю, что условие не сработало.
...
Рейтинг: 0 / 0
Записи в таблицу не проходят
    #33750923
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Проверить, что возвращает TableUpdate
2. При получании .F. (возникла ошибка), команда AERROR() создаст массив, который надо посмотреть, что бы узнать, чего не сраслось при модификации.
...
Рейтинг: 0 / 0
Записи в таблицу не проходят
    #33751328
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сброс буфера происходит в нужной рабочей области? Если написать так:

Код: plaintext
1.
2.
3.
4.
5.
6.
INSERT ...
IF TableUpdate(.T.,.T.,"table1") = .F.
	LOCAL laError( 1 )
	=AERROR(laError)
	* анализ массива laError для уточнения причины ошибки
ENDIF

Т.е. в качестве 3 параметра TableUpdate() явно укажи алиас рабочей области, где необходимо сохранить буфер.
...
Рейтинг: 0 / 0
Записи в таблицу не проходят
    #33751462
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я здесь пока эксперементировала, ваши последние советы не разбирала.

= CURSORSETPROP('Buffering', 5, 'table1') - 5 советовал ставить уважаемый ВладимирМ. А у меня проект был как раз написан с ('Buffering', 2, 'table1'). Вот я сегодня и попыталась в новом проекте 2 поменять на 5. Результат, как вы знаете, плачевный.
Только что переписала код по-старому:
= CURSORSETPROP('Buffering', 2, 'table1')
И теперь стало все нормально - записи в новом проекте уходят в таблицу.
Вернула 5 - опять записи сбрасываются в никуда.
...
Рейтинг: 0 / 0
Записи в таблицу не проходят
    #33751498
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фу елки палки, тебе задали 3 вопроса ответь пожалуйста на них

авторА сброс буфера происходит в нужной рабочей области?

Т.е. в качестве 3 параметра TableUpdate() явно укажи алиас рабочей области, где необходимо сохранить буфер.

авторТак проверь как отработала команда TableUpdate()

авторПри получании .F. (возникла ошибка), команда AERROR() создаст массив, который надо посмотреть, что бы узнать, чего не сраслось при модификации.
...
Рейтинг: 0 / 0
Записи в таблицу не проходят
    #33751521
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строковая буферизация (2 или 3) отличается от табличной (4 или 5) тем, что при определенных условиях происходит автоматический сброс буфера. Т.е. вне зависимости от факта подачи команды TableUpdate().

Это происходит, например, при перемещении указателя записи или при закрытии таблицы.

В данном случае, это означает, что процесс сброса буфера происходит бесконтрольно. Команда TableUpdate() НЕ выполняет сброс буфера. Почему? Возможно, потому, что не указан алиас.

Это значит, что рано или поздно, возникнут глюки. Процесс сброса буфера всега надо контролировать. Я бы советовал оставить 5 буферизацию и все-таки найти причину ошибки.
...
Рейтинг: 0 / 0
Записи в таблицу не проходят
    #33751698
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот так:
TableUpdate(.T.,.T.,"table1")
все заработало.
М-да-а...
TABLEUPDATE( [nRows [, lForce]] [, cTableAlias | nWorkArea] [, cErrorArray] )
По Help'у параметры необязательные...

Благодарю всех-всех-всех!

Елизавета Скрунскайте

P.S.
PaulWistФу елки палки, тебе задали 3 вопроса ответь пожалуйста на них
Не ругайтесь, пожалуйста. На первый-то из перечисленных вопрсов я ответила сейчас.
Впредь постараюсь быть порасторопней ;-)
...
Рейтинг: 0 / 0
Записи в таблицу не проходят
    #33752392
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>По Help'у параметры необязательные...

Только в этом случае надо жество отслеживать нужную текущую область и не забывать ставить SELECT <нужный алиас>, а то в фоксе хватает контролов самостоятельно перекидывающих рабочии области. Особено этим знаменит GRID.
Ваще, я предпочитаю везде, где синтаксис позволяе указывать рабочие обласит обязательно их указывать - и на душе спокойней и понимать потом проще ;)
...
Рейтинг: 0 / 0
Записи в таблицу не проходят
    #33752837
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Параметр не обязателный, но если он не указан, это предполагает, что попытка сохранения буфера происходит в текущей рабочей области.

Ты же сама написала

Код: plaintext
GO TOP IN table1

Разве опция IN в команде GO - обязательна? Зачем же ты ее использовала?

Альтернативным вариантом использования опций с указанием рабочих областей является явный переход в нужную рабочую область

Код: plaintext
1.
2.
SELECT Table1
GO TOP
TableUpdate(.T.)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Записи в таблицу не проходят
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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