powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как ускорить работы с работой с DBF по сети
15 сообщений из 65, страница 3 из 3
Как ускорить работы с работой с DBF по сети
    #39059010
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
Он мне выбирает предыдущее значение, ничего не понимаю, как так-то...
...
Рейтинг: 0 / 0
Как ускорить работы с работой с DBF по сети
    #39059017
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из DBF предыдущее?

Посмотри, может буферизация включена
Код: sql
1.
? CURSORGETPROP('Buffering', mNameZ)


Что выдает? Надо 1
...
Рейтинг: 0 / 0
Как ускорить работы с работой с DBF по сети
    #39059019
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AngelOKES, Вывожу сообщение:

Код: sql
1.
Messagebox(Allt(Str(qZakaz.row_num)),32,'')



и сразу видно, что он использует предыдущий код, может тупо сделать +1, но тут уверенности куда пойдёт пользовать вниз, вверх тлт просто ткнёт мышкой
...
Рейтинг: 0 / 0
Как ускорить работы с работой с DBF по сети
    #39059025
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
Так и есть:

1 – Row and table buffering is off. (Default)
...
Рейтинг: 0 / 0
Как ускорить работы с работой с DBF по сети
    #39059030
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
У меня в начале программы стоит:

Код: sql
1.
Set Multilocks On



Если честно не помню откуда я это взял, может это как-то влияет?

сейчас напишу все ключи

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Set Date German
Set Century On
Set Hours To 24
Set Decimals To 2
Set Bell Off
Set Autosave On
Set Exclusive Off
Set Deleted On
Set Multilocks On
Set Point To '.'
Set Fdow To 2
Set Fweek To 3
...
Рейтинг: 0 / 0
Как ускорить работы с работой с DBF по сети
    #39059032
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AngelOKESAngelOKES, Вывожу сообщение:

Код: sql
1.
Messagebox(Allt(Str(qZakaz.row_num)),32,'')



и сразу видно, что он использует предыдущий код, может тупо сделать +1, но тут уверенности куда пойдёт пользовать вниз, вверх тлт просто ткнёт мышкой
Это значит ты еще не ушел с предыдущей строки, когда код отрабатывает. Выводишь откуда? Где поставил Messagebox() ?

тупо +1 не надо. На крайний случай можно изврат с таймером сделать, но сначала без него надо попытаться порешать.
...
Рейтинг: 0 / 0
Как ускорить работы с работой с DBF по сети
    #39059035
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, Вся процедура стоит конечно же в Grid на собитие BeforeRowColChange
Отрабатывает эта процедура когда пользователь перемещается по гриду вниз или вверх
Значение он действительно берёт из записи из которой выходит, а не заходит, проверил и вашим методом и своим
...
Рейтинг: 0 / 0
Как ускорить работы с работой с DBF по сети
    #39059036
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AngelOKESDima T,
У меня в начале программы стоит:
Это нормально, стандартные сеты. Туда пока не заглядывай.
Надо с этим разбираться 18183244 Похоже ты не ту строку меняешь, поэтому нужная не меняется.
...
Рейтинг: 0 / 0
Как ускорить работы с работой с DBF по сети
    #39059046
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже я затупил :)

BeforeRowColChange() срабатывает на старой записи перед уходом с нее.

Надо в AfterRowColChange() прописывать обновление курсора, а в BeforeRowColChange() сохранение результата в таблицу.
...
Рейтинг: 0 / 0
Как ускорить работы с работой с DBF по сети
    #39059051
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TПохоже я затупил :)

BeforeRowColChange() срабатывает на старой записи перед уходом с нее.

Надо в AfterRowColChange() прописывать обновление курсора, а в BeforeRowColChange() сохранение результата в таблицу.

Я тоже так подумал, сейчас попробую!
...
Рейтинг: 0 / 0
Как ускорить работы с работой с DBF по сети
    #39059066
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И добавь проверку чтобы по несколько раз не писать одно и тоже. Тормозов меньше будет
Добавь форме свойство nLastRow = 0
в коде так использовать
Код: sql
1.
2.
3.
4.
if ThisForm.nLastRow != qZakaz.row_num
   ThisForm.nLastRow = qZakaz.row_num
   ... обновляем qZakaz
endif
...
Рейтинг: 0 / 0
Как ускорить работы с работой с DBF по сети
    #39059068
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
Да всё работает, а проверка у меня на это событие уже было, получилось что-то вроде этого:

Код: sql
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.
Lparameters nColIndex
If mKodZap<>qZakaz.kod
	Sele (mNameZ)
	Go (qZakaz.row_num)
	lcAdres1 = Adres1
	lcKodv = kodv
	Repl In qZakaz Adres1 With lcAdres1, kodv With lcKodv
	mKodZap=qZakaz.kod
	mKodVZ=qZakaz.kodv
	With Thisform
		mDataJ=Ctod(.lDataJ.Caption)
		Update (mNameZ) Set blok=0 Where blok=mkodid
		Update (mNameZ) Set blok=mkodid Where kod=mKodZap And blok=0
		.tk1.Value=qZakaz.k1
		.tk2.Value=qZakaz.k2
		.tk3.Value=qZakaz.k3
		.tsz1.Value=qZakaz.sz1
		.tsz2.Value=qZakaz.sz2
		.tsz3.Value=qZakaz.sz3
		.tsp1.Value=qZakaz.sp1
		.tsp2.Value=qZakaz.sp2
		.tsp3.Value=qZakaz.sp3
		.tDis1.Value = qZakaz.kodd
		.tDis2.Value = qZakaz.kodd2
		.tZakB.Value = qZakaz.kodzakb
		.tKarta.Value = Allt(qZakaz.karta)
		.tSchet.Value = Allt(qZakaz.schet)
		.tNomerT.Value = qZakaz.Tel
		.cK.Enabled = .T.
		.tVod.BackColor = Iif(qZakaz.priz3=.F.,Rgb(225,255,255),Rgb(125,155,155))
		.tVod.Value=mKodVZ
		If mKodVZ<>0 And qZakaz.priz3=.F.
			mDatNtN=mDataJ-Iif(Dow(mDataJ)=1,8,Dow(mDataJ))+2 
			If Indexseek(Str(mKodVZ,5) + Dtoc(mDatNtN, 1), .T., 'saldo', 'kd')
				If saldo.balans<0
					.tVod.BackColor = Rgb(255,0,0)
				Else
					.tVod.BackColor = Rgb(0,255,0)
				Endif
			Endif
		Endif
	Endwith
Endif
...
Рейтинг: 0 / 0
Как ускорить работы с работой с DBF по сети
    #39059076
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
Пришлось всё таки вернуть:

Код: sql
1.
Thisform.Grid1.Column6.Text1.value = lcAdres1



Иначе при повторном входе значение меняется на старое, а с этой строчкой всё ровно, немного непонятно, но вроде работает!
...
Рейтинг: 0 / 0
Как ускорить работы с работой с DBF по сети
    #39059081
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AngelOKESс этой строчкой всё ровно, немного непонятно, но вроде работает!
Объекты грида и данные из источника (курсора) хоть и синхронизируются, но не постоянно. Поэтому иногда возможна ситуация что данные в источнике изменились, а грид это не перерисовал. Для этого нужна эта строчка. Можно Refresh() но это более тяжелая операция, т.к. он сразу все видимые строки перерисовывает.
...
Рейтинг: 0 / 0
Как ускорить работы с работой с DBF по сети
    #39059084
Фотография AngelOKES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, Спасибо! Будем тестировать систему
...
Рейтинг: 0 / 0
15 сообщений из 65, страница 3 из 3
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как ускорить работы с работой с DBF по сети
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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