powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Для буфферизации таблицы или строк требуется...
12 сообщений из 12, страница 1 из 1
Для буфферизации таблицы или строк требуется...
    #34035071
GreenStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день

В продолжении моего вчерашного вопроса. Использовал буфферизацию. В методе Init формы грида:

SET MULTILOCKS ON
CURSORSETPROP("Buffering", 5, "clients")

А в методе destroy

SET MULTILOCKS OFF


Вызываю одну и ту же форму при вводе новой записи и редктировании существующей. Принажатии кнопки "Сохранить"-TableUpdate(.T.), "Отмена"-TableRevert(.F.) (.F.-чтобы отменить только одну текущую запись).

Так вот, все отлично. но при закрытии формы грида выдается следующее:

Для буфферизации таблицы или строк требуется установка
SET MULTILOCKS ON
Хотя SET MULTILOCKS ON уже имеется в методе Init

Подскажите пожалуйста, в чем проблема

СПАСИБО ЗА ВСЕ ОТВЕТЫ
...
Рейтинг: 0 / 0
Для буфферизации таблицы или строк требуется...
    #34035108
S866
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте переместить

SET MULTILOCKS OFF

из destroy

в release метод
...
Рейтинг: 0 / 0
Для буфферизации таблицы или строк требуется...
    #34035173
GreenStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, не получается
...
Рейтинг: 0 / 0
Для буфферизации таблицы или строк требуется...
    #34035248
GreenStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ecли убрать SET MULTILOCKS OFF вообще, то ошибки нет, но что интересно, при закрытии формы грида введенные данные не сохраняются, т.е. просто теряются
...
Рейтинг: 0 / 0
Для буфферизации таблицы или строк требуется...
    #34035258
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что говорит TableUpdate()?
...
Рейтинг: 0 / 0
Для буфферизации таблицы или строк требуется...
    #34035304
GreenStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TableUpdate возвращает .F. (False). Но почему не знаю. Как выяснить это?
...
Рейтинг: 0 / 0
Для буфферизации таблицы или строк требуется...
    #34035310
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GreenStarTableUpdate возвращает .F. (False). Но почему не знаю. Как выяснить это?
Aerror()
...
Рейтинг: 0 / 0
Для буфферизации таблицы или строк требуется...
    #34035332
GreenStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В в главном модуле (prg) записал следующий код:

ON ERROR DO errhand

PROCEDURE errhand
= AERROR(aErrorArray) && Data from most recent error
CLEAR
? 'The error provided the following information' && Display message
FOR n = 1 TO 7 && Display all elements of the array
MessageBox(aErrorArray(n))
ENDFOR

Но к сожалению, ничего не выводится
...
Рейтинг: 0 / 0
Для буфферизации таблицы или строк требуется...
    #34035387
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У формы какой сеанс данных? Private или Default
...
Рейтинг: 0 / 0
Для буфферизации таблицы или строк требуется...
    #34035389
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возрат .f. функцией tableupdate не генерит ошибку (читаем хелп внимательнее
)
поэтому просто
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
if tableupdete()=.f.
 = AERROR(aErrorArray) && Data from most recent error
CLEAR
? 'The error provided the following information' && Display message
FOR n =  1  TO  7  && Display all elements of the array
MessageBox(aErrorArray(n))
endfor
endif
PS можете обернуть все это в свою функцию и юзать вместо tableupdate
...
Рейтинг: 0 / 0
Для буфферизации таблицы или строк требуется...
    #34035624
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код не мой, а где взял- честно говоря не помню.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
IF CURSORGETPROP("Buffering")= 1 
	RETURN  0 
	WAIT 'Буферизация таблицы не включена' WINDOW NOWAIT TIMEOUT  5  
ENDIF 	
BEGIN TRANSACTION 
IF !TABLEUPDATE(.T.,.F.)
	ROLLBACK
	AERROR(a_errors)
	DO case
	CASE a_errors( 1 , 1 )= 1539  &&ошибка тригера
		DO CASE 
			CASE a_errors( 1 , 5 )= 1  && 1  - Ошибка триггера добавления.
				***
			CASE a_errors( 1 , 5 )= 2  && 2  - Ошибка триггера обновления.
				***
			CASE a_errors( 1 , 5 )= 3  && 3  - Ошибка триггера удаления.
				**
		ENDCASE 		
		MESSAGEBOX('Внимание: '+ICASE(a_errors( 1 , 5 )= 1 ,'Ошибка триггера добавления', ;
		a_errors( 1 , 5 )= 2 ,'ошибка триггера обновления',a_errors( 1 , 5 )= 3 ,'ошибка триггера удаления'))
		TABLEREVERT()
	CASE a_errors( 1 , 1 )= 1581  && ошибка нулевых значений
		MESSAGEBOX('ошибка нулевых значений')
		TABLEREVERT()
	CASE a_errors( 1 , 1 )= 1582  && ошибка правила ввода
		MESSAGEBOX('ошибка правила ввода')
		TABLEREVERT()
	CASE a_errors( 1 , 1 )= 1585  &&запись была изменена другим пользователем 
		BEGIN TRANSACTION 
		l_resalt=this.verifyeachchange()
		IF l_resalt= 1 
			MESSAGEBOX('Обновление прошло удачно')
		ELSE 	
			MESSAGEBOX(this.string(l_resalt))
		ENDIF 
		END TRANSACTION 	
	CASE a_errors( 1 , 1 )= 109  && запись занята другим пользователем
		***
	CASE a_errors( 1 , 1 )= 1583  &&было нарушено правило ввода
		***
	CASE a_errors( 1 , 1 )= 1884  &&нарушение уникальности индекса
		MESSAGEBOX('нарушение уникальности индекса')
		TABLEREVERT()
	OTHERWISE 
		MESSAGEBOX('Непонятная ошибка '+ STR(a_errors( 1 , 1 )))	
				
	ENDCASE
	RETURN  1 
ELSE 
	END TRANSACTION 
	RETURN  1 	
ENDIF 						

...
Рейтинг: 0 / 0
Для буфферизации таблицы или строк требуется...
    #34036379
GreenStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос закрыть
СПАСИБО ВСЕМ!!!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Для буфферизации таблицы или строк требуется...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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