Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проблема ввода данных / 5 сообщений из 5, страница 1 из 1
19.02.2007, 03:24
    #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
19.02.2007, 09:37
    #34339979
Роман Новичек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема ввода данных
Что-то в листинге не видно сброс буфера TABLEUPDATE.
...
Рейтинг: 0 / 0
19.02.2007, 09:58
    #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
19.02.2007, 16:38
    #34341642
Араик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема ввода данных
Я тож так думаю!!! чето я не так сделал. Позно ночью делал наверно напутал!!!
...
Рейтинг: 0 / 0
19.02.2007, 16:44
    #34341670
Араик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема ввода данных
Владимир спасибо и за некоторые обьяснения !!! а листинг ящас дорабатываю тут есть нюансы которые нужно доделать!!!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проблема ввода данных / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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