Ответить

 

Опции темы
Старый 13.10.2010, 01:11   #11
Sirius34
Пользователь
 
Аватар для Sirius34
 
Регистрация: 19.07.2010
Сообщений: 392
Благодарности: 0
Поблагодарили 76 раз(а) в 76 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

хм... ну допустим
а если дата будет забита так: "19.08.19.8" (сегодня случайно нашел такую в базе, там еще много подобных)
тогда какой результат будет? пропустит "инвалидку" или выдаст ошибку?
 
В Минюст Цитата Спасибо
Старый 13.10.2010, 09:43   #12
belov-evgenii
Модератор раздела
 
Аватар для belov-evgenii
 
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45 раз(а) в 45 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

пропустит. Но можно написать запрос, который такие не валидные даты отберет для дальнейшего исправления
 
В Минюст Цитата Спасибо
Старый 13.10.2010, 10:30   #13
Потопешка
Пользователь
 
Аватар для Потопешка
 
Регистрация: 22.06.2010
Сообщений: 14
Благодарности: 0
Поблагодарили 2 раз(а) в 2 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

Цитата:
Сообщение от belov-evgenii Посмотреть сообщение
пропустит. Но можно написать запрос, который такие не валидные даты отберет для дальнейшего исправления
дааа, согласна, я думаю, так и надо сделать
 
В Минюст Цитата Спасибо
Старый 13.10.2010, 14:35   #14
belov-evgenii
Модератор раздела
 
Аватар для belov-evgenii
 
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45 раз(а) в 45 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

Код:
execute ibeblock 
returns (npp integer, 
	novalid varchar(200)) 
as 
begin 
	/* создаем регэксп для даты */ 
	re = ibec_re_Create('(0[1-9]|[12][0-9]|3[01]).(0[1-9]|1[012]).(19[0-9]{2}|200[0-9]|2010)'); 
 
	/* выбираем npp и даты рождения */ 
	for select ip.npp, 
		ip.date_born_d 
	from ip 
	into :npp, :novalid do begin 
		/* если not null, то смотрим через регэксп */ 
		if (:novalid is not null) then begin 
			/* возвращает true, если содержимое :novalid подходит под регэксп re 
			   и false, если :novalid не подходит */ 
			res = ibec_re_Exec(re, :novalid); 
			/* нам нужно вывести результат false */ 
			if (res = 0) then suspend; 
		end; 
		/* выводим также, если дата рождения null */ 
		else suspend; 
	end; 
	ibec_re_Free(re); 
end
 
В Минюст Цитата Спасибо
Старый 13.10.2010, 14:54   #15
undermind
Пользователь
 
Аватар для undermind
 
Регистрация: 09.05.2010
Сообщений: 182
Благодарности: 0
Поблагодарили 12 раз(а) в 12 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

Ходят слухи что в свежем FB можно регексы в запросах пользовать
что сводит код к
Код:
select ip.npp, ip.date_born_d from ip where ip.date_born_d matching '[0-3][0-9]\.[0-1][0-9]\.(19|20)[0-9]{2}'
 
В Минюст Цитата Спасибо
Старый 13.10.2010, 14:58   #16
belov-evgenii
Модератор раздела
 
Аватар для belov-evgenii
 
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45 раз(а) в 45 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

Ага. Только не matching, а similar to
 
В Минюст Цитата Спасибо
Старый 13.10.2010, 15:18   #17
undermind
Пользователь
 
Аватар для undermind
 
Регистрация: 09.05.2010
Сообщений: 182
Благодарности: 0
Поблагодарили 12 раз(а) в 12 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

да, точно - пример из dev-диспута схватил
 
В Минюст Цитата Спасибо
Старый 13.10.2010, 19:47   #18
raus
Модератор ФССП
 
Аватар для raus
 
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548 раз(а) в 528 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

Цитата:
Сообщение от undermind Посмотреть сообщение
Ходят слухи что в свежем FB можно регексы в запросах пользовать
что сводит код к
Код:
select ip.npp, ip.date_born_d from ip where ip.date_born_d matching '[0-3][0-9]\.[0-1][0-9]\.(19|20)[0-9]{2}'
об чем этот селект - просвятите плз....
__________________
Yo Way Yo, Home Va-Ray,
Yo Ay-Rah, Jerhume Brunnen-G
 
В Минюст Цитата Спасибо
Старый 13.10.2010, 20:23   #19
belov-evgenii
Модератор раздела
 
Аватар для belov-evgenii
 
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45 раз(а) в 45 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

Искать по "регулярные выражения".
 
В Минюст Цитата Спасибо
Старый 13.10.2010, 20:34   #20
Sirius34
Пользователь
 
Аватар для Sirius34
 
Регистрация: 19.07.2010
Сообщений: 392
Благодарности: 0
Поблагодарили 76 раз(а) в 76 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

undermind
так можно, к примеру, 35.02.2019 пропустить
 
В Минюст Цитата Спасибо
Ответить


Быстрый ответ

Сообщение:
Опции


Ваши права в разделе