Фокс про
От: Succube  
Дата: 18.05.06 18:18
Оценка:
У меня только один вопрос....
Создала хранимую процедуру Verify(), которая должна проверять введенную дату рождения. Если возраст превышает 18 лет, то возвращать True, в противном случае False.
Для определения системной даты используется функция Date(). Для определения года — Year(дата). Для возвращения результат — команда Return. Описание процедуры начинается с ключевого слова Procedure
Procedure Verify()
if year(date())-year(date_birth)>18 then
return.T.
else
return.F.
endif


КУДА ВОЗВРАЩАЕТМЯ .Т.
Re: Фокс про
От: 191540 Россия  
Дата: 19.05.06 00:16
Оценка:
Здравствуйте, Succube, Вы писали:

S>У меня только один вопрос....

S>Создала хранимую процедуру Verify(), которая должна проверять введенную дату рождения. Если возраст превышает 18 лет, то возвращать True, в противном случае False.
S>Для определения системной даты используется функция Date(). Для определения года — Year(дата). Для возвращения результат — команда Return. Описание процедуры начинается с ключевого слова Procedure
S>Procedure Verify()
S>if year(date())-year(date_birth)>18 then
S>return.T.
S>else
S>return.F.
S>endif


S>КУДА ВОЗВРАЩАЕТМЯ .Т.


Вопрос не совсем понятен.
Но в любом случае код у меня (VFP 9 SP 1) работает

Откуда берется date_birth ?

Может быть сделать так:

Procedure Verify(date_birth)
.......
Re: Фокс про
От: vav Россия  
Дата: 19.05.06 03:31
Оценка:
Здравствуйте, Succube, Вы писали:

S>У меня только один вопрос....

S>Создала хранимую процедуру Verify(), которая должна проверять введенную дату рождения. Если возраст превышает 18 лет, то возвращать True, в противном случае False.
S>Для определения системной даты используется функция Date(). Для определения года — Year(дата). Для возвращения результат — команда Return. Описание процедуры начинается с ключевого слова Procedure
S>Procedure Verify()
S>if year(date())-year(date_birth)>18 then
S>return.T.
S>else
S>return.F.
S>endif


S>КУДА ВОЗВРАЩАЕТМЯ .Т.


Какая бд?

например, в МS SQL:

declare @res bit
exec @Res = Verify(sysdate()-365*19);
print @res


и не забыл ли указать параметр date_birth в сигнатуре процедуры?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Фокс про
От: Блудов Павел Россия  
Дата: 19.05.06 03:55
Оценка:
Здравствуйте, vav, Вы писали:

vav>Какая бд?

Читайте тему. Там написано: Фокс про. Считать её за БД или нет — это уже совсем другой вопрос
... << RSDN@Home 1.2.0 alpha rev. 642>>
Re[3]: Фокс про
От: vav Россия  
Дата: 19.05.06 04:02
Оценка:
Здравствуйте, Блудов Павел, Вы писали:

vav>>Какая бд?

БП>Читайте тему. Там написано: Фокс про. Считать её за БД или нет — это уже совсем другой вопрос

сорри, пропустил.
Re: Фокс про
От: Laurel  
Дата: 19.05.06 05:55
Оценка:
Здравствуйте, Succube, Вы писали:

S>У меня только один вопрос....

S>КУДА ВОЗВРАЩАЕТМЯ .Т.

Как уже говорили, вопрос не совсем понятен. Но, я включив телепатию, предположу, что Вы хотите узнать куда нужно поместить вызов Verify(), чтобы выполнялось то, что предполагалось.
У меня сейчас фокса под рукой нет, но вот что вспоминается. При редактировании списка полей таблицы, если выделить то поле, значение которого нужно проверять, есть три поля ввода "Insert trigger", "Update trigger", "Delete trigger". Вот в поля "Insert trigger", "Update trigger" и нужно поместить Verify().

Если я ничего не путаю.
Re: Фокс про
От: VladimirSklyar  
Дата: 19.05.06 20:14
Оценка:
Здравствуйте, Succube, Вы писали:

S>КУДА ВОЗВРАЩАЕТМЯ .Т.



процедуру немного подкорректируем
Procedure Verify()
lpara date_birth
if year(date())-year(date_birth)>18 then
return.T.
else
return.F.
endif

вызываем
llYear = Verify(<тут передаем дату рождения нужного чела>)

Итого, в llYear имеем рез-тат
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.