Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2010, 16:47   #1
Alex_Pioner
 
Регистрация: 29.11.2010
Сообщений: 6
По умолчанию FoxPro

Привет, помогите пожалуйста!!!
Создал базу в Visual FoxPro, на форме добавления новой записи в таблицу есть кнопка "Добавить" к не нужно сделать обработчик Click чтобы id увеличивался автоматически на один т.е. если был 3 при добавлении стал 4.

Последний раз редактировалось Alex_Pioner; 29.11.2010 в 16:54.
Alex_Pioner вне форума Ответить с цитированием
Старый 29.11.2010, 17:27   #2
Cannibal
Форумчанин
 
Регистрация: 17.02.2008
Сообщений: 191
По умолчанию

сейчас фокса под рукой нет, но если мне не изменяет память, то при создании теблицы (или по Modify Structure)можно сделать одно поле с автоматическим заполнением.
Mathematicians often mix up Christmas and Halloween, because Dec.25=Oct.31.
Cannibal вне форума Ответить с цитированием
Старый 29.11.2010, 17:32   #3
Alex_Pioner
 
Регистрация: 29.11.2010
Сообщений: 6
По умолчанию

Я так пробовал чет не получилось)))
Alex_Pioner вне форума Ответить с цитированием
Старый 29.11.2010, 17:33   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так и есть
Изображения
Тип файла: jpg Верно.JPG (51.1 Кб, 43 просмотров)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.11.2010, 17:43   #5
Alex_Pioner
 
Регистрация: 29.11.2010
Сообщений: 6
По умолчанию

У меня FoxPro 6.0 к сожалению там такого типа нету((((((((
Alex_Pioner вне форума Ответить с цитированием
Старый 29.11.2010, 18:16   #6
Cannibal
Форумчанин
 
Регистрация: 17.02.2008
Сообщений: 191
По умолчанию

тогда более извращенный способ (так как больше ничего на ум не приходит)
1. найти максимальное значение в этом поле (либо селектом, либо с помощью индексирования) и записать в ПЕРЕМЕННУЮ.
2. присвоить полю новой записи значение ПЕРЕМЕННАЯ+1
Mathematicians often mix up Christmas and Halloween, because Dec.25=Oct.31.
Cannibal вне форума Ответить с цитированием
Старый 29.11.2010, 18:22   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну тогда по простому - при добавлении лочить таблицу,
выбирать оттуда максимальный номер, добавлять к нему единичку: select max(id)+1 as newid from таблица
и полученный newid использовать при добавлении записи

p.s. при реальном использовании, да ещё и при многопользовательском режиме лучше завести отдельную таблицу, в ней хранить последний использованный номер ID для каждой таблицы с данными (этакий самодельный сиквенс на основе таблицы)



Добавлено
Cannibal +1
прозевал ответ.. поэтому мой ответ повторил предыдущий пост...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.11.2010, 18:26   #8
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

когда-то давно что-то подобное делала, к сожалению большую чатсь уже не помню, вот сохранился код функции получения следующего значения
Код:
func NextKey
lparam ctable_name, cfieldmax_name

local nkey,olddele,oldorder
nkey=0
if !File('индексы.dbf')
	create dbf индексы FREE (макс_индек N(5), имя_таблиц C(10), CANDIDATE Upper(AllTrim(имя_таблиц)) TAG имя_табл)
endif	

if not used(ctable_name)
	use (ctable_name) in 0
endif
if not used("индексы")
	use индексы in 0
endif

select индексы
 IF seek(Upper(AllTrim(ctable_name)), "индексы", "имя_табл") 
	replace макс_индек with макс_индек+1
	nkey=макс_индек
else
	append blank
	replace имя_таблиц with ctable_name
	select (ctable_name)
	olddele=set("deleted")
	set dele off
	oldorder=set("order")
	set order to 0
	calculate max(&cfieldmax_name) to nkey
	nkey=nkey+1
	set order to &oldorder
	set dele &olddele
	select индексы
	replace макс_индек with nkey
endif
return nkey
если что могу приложить проект
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кириллица в FoxPro 2.6 DimOn4Ik БД в Delphi 0 02.05.2010 16:24
Драйвер FoxPro VadEr Помощь студентам 0 16.09.2009 14:06
Delphi и FoxPro Anatol77 Помощь студентам 1 22.08.2009 13:28
FOXPRO и Delphi werser БД в Delphi 3 23.01.2009 02:27
FoxPro 8.0 Cannibal Свободное общение 6 17.10.2008 23:39