Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Для буфферизации таблицы или строк требуется... / 12 сообщений из 12, страница 1 из 1
05.10.2006, 15:11
    #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
05.10.2006, 15:19
    #34035108
S866
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для буфферизации таблицы или строк требуется...
попробуйте переместить

SET MULTILOCKS OFF

из destroy

в release метод
...
Рейтинг: 0 / 0
05.10.2006, 15:36
    #34035173
GreenStar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для буфферизации таблицы или строк требуется...
Нет, не получается
...
Рейтинг: 0 / 0
05.10.2006, 16:00
    #34035248
GreenStar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для буфферизации таблицы или строк требуется...
Ecли убрать SET MULTILOCKS OFF вообще, то ошибки нет, но что интересно, при закрытии формы грида введенные данные не сохраняются, т.е. просто теряются
...
Рейтинг: 0 / 0
05.10.2006, 16:02
    #34035258
Проходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для буфферизации таблицы или строк требуется...
И что говорит TableUpdate()?
...
Рейтинг: 0 / 0
05.10.2006, 16:15
    #34035304
GreenStar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для буфферизации таблицы или строк требуется...
TableUpdate возвращает .F. (False). Но почему не знаю. Как выяснить это?
...
Рейтинг: 0 / 0
05.10.2006, 16:16
    #34035310
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для буфферизации таблицы или строк требуется...
GreenStarTableUpdate возвращает .F. (False). Но почему не знаю. Как выяснить это?
Aerror()
...
Рейтинг: 0 / 0
05.10.2006, 16:21
    #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
05.10.2006, 16:32
    #34035387
Jura.K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для буфферизации таблицы или строк требуется...
У формы какой сеанс данных? Private или Default
...
Рейтинг: 0 / 0
05.10.2006, 16:32
    #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
05.10.2006, 17:28
    #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
06.10.2006, 07:31
    #34036379
GreenStar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Для буфферизации таблицы или строк требуется...
Вопрос закрыть
СПАСИБО ВСЕМ!!!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Для буфферизации таблицы или строк требуется... / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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