powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проблема ввода данных
5 сообщений из 5, страница 1 из 1
проблема ввода данных
    #34339756
Араик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем такая ситуация:
прежде чем занести данные в таблицу, следует проверить есть ли такие данные уже в таблице.
Если есть не записывать,а если нет то записать. На листинге внизу функция seek почему то не работает но при этом не возникает ошибка, оператор for выполняетсь, результата в таблице нет,
т.е. не записываются данные если их там нет. (Таблица пустая) В чем причина может быть? может другой вариант есть!!!
For i=1 to Reccount()
Use торговые_представители
set near off
seek i=i
If !found()
Set MultiLock On
Cursorsetprop("buffering",3)
Insert Into торговые_представители (last_name,First_name,patronymic,adress,phone,type_product);
Values(ThisForm.txtLName.value,ThisForm.txtFNAme.value, ThisForm.txtPatronymic.value, ;
ThisForm.txtAdress.Value, ThisForm.txtPhone.VAlue,ThisForm.txtTwrs.Value)
n=Reccount()
Replace key_repres With n
exit
else
n=RecNo()
MessageBox("Такая запись существует")
go n
Endif
endFor
ThisForm.Grid1.SetFocus
ThisForm.Refresh
...
Рейтинг: 0 / 0
проблема ввода данных
    #34339979
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то в листинге не видно сброс буфера TABLEUPDATE.
...
Рейтинг: 0 / 0
проблема ввода данных
    #34340036
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала приведем Ваш код в вид, при котором его можно анализировать

Код: 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.
For i= 1  to Reccount()
	Use торговые_представители
	set near off 
	seek i=i
	If !found()
		Set MultiLock On
		Cursorsetprop("buffering", 3 )
		Insert Into торговые_представители ;
			(last_name,;
			First_name,;
			patronymic,;
			adress,;
			phone,;
			type_product);
		Values ;
			(ThisForm.txtLName.value,;
			ThisForm.txtFNAme.value, ;
			ThisForm.txtPatronymic.value, ;
			ThisForm.txtAdress.Value, ;
			ThisForm.txtPhone.VAlue,;
			ThisForm.txtTwrs.Value)
		n=Reccount()
		Replace key_repres With n
		exit
	else
		n=RecNo()
		MessageBox("Такая запись существует")
		go n
	Endif 
endFor
ThisForm.Grid1.SetFocus
ThisForm.Refresh

Сам по себе цикл весьма странный. Я так понимаю, что он перебирает все физические номера записей неизвестно какой таблицы (до начала цикла не указана таблица-образец) и сравнивает ... с чем? Что должен делать оператор

seek i=i

Это как? Почему на этой команде не выскакивает сообщение об ошибке? Вы же не указали активного индекса для таблицы "торговые_представители". Да даже, если бы и указали, ЧТО должен найти такой оператор?

Далее, как уже указал Роман, выберите что-то одно. Либо буферизация+TableUpdate(), либо отказ от буферизации. А делать гибрид ежа и ужа ..., ну, получите несколько метров колючей проволоки .

Внутри цикла постоянно "дергать" групповые команды, во-первых, снижать производительность, а во-вторых, что более важно, нарушить логику выполнения программы.

Зачем Вы делаете открытие таблицы "торговые_представители" и настройку режима буферизации внутри цикла? Т.е. сколько шагов сделает цикл, столько раз Вы переоткрываете таблицу и столько же раз делая настройку режима буферизации. При этом автоматически сохраняя все изменения.
...
Рейтинг: 0 / 0
проблема ввода данных
    #34341642
Араик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я тож так думаю!!! чето я не так сделал. Позно ночью делал наверно напутал!!!
...
Рейтинг: 0 / 0
проблема ввода данных
    #34341670
Араик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир спасибо и за некоторые обьяснения !!! а листинг ящас дорабатываю тут есть нюансы которые нужно доделать!!!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проблема ввода данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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