Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.08.25;
Скачать: CL | DM;

Вниз

распарсить строку во входящем параметре запроса   Найти похожие ветки 

 
tomkat   (2010-12-15 17:45) [0]

День добрый. подскажите оптимальное решение :есть запрос , входящий параметр - строка с перечнем дат , типа "01.05.2010;02.03.2009;07.08.2007", нужно получить список дат и для них запустить некую процедуру внутри.


 
Ega23 ©   (2010-12-16 00:58) [1]

select field1 from table1 where field1 in (1,2,3)


 
Виталий Панасенко   (2010-12-16 11:56) [2]

execute block


 
tomkat   (2010-12-16 12:38) [3]

select field1 from table1 where field1 in (1,2,3)
это как  ? что такое (1,2,3) ???? при чем здесь таблица ??


 
Виталий Панасенко   (2010-12-16 13:04) [4]

еще вариант - execute statement


 
tomkat   (2010-12-16 13:07) [5]

здесь нет таблицы, мне нужно генерировать набор записей из распарсеной строки входящего параметра
что-то с использованием WHILE, SUBSTRING


 
tomkat   (2010-12-16 13:12) [6]

ВОТ решение ! на входе пишем
01.02.2005,03.08.2007,17.12.2010
получаем

ID
01.02.2005
03.08.2007
17.12.2010


вот процедура
create procedure PARSDATESTR (
   IDS varchar(32700))
returns (
   ID varchar(100))
as
declare variable I integer = 1;
declare variable J integer = 1;
BEGIN
 IDS = TRIM(:IDS);
 WHILE (:I <= CHAR_LENGTH(:IDS)) DO
 BEGIN
   IF ("," = SUBSTRING(:IDS FROM :I FOR 1)) THEN
   BEGIN
     ID = SUBSTRING(:IDS FROM :J FOR :I - :J);
     SUSPEND;
     I = :I + 1;
     J = :I;
   END
   I = :I + 1;
 END
 IF (:I > :J) THEN
 BEGIN
   ID = SUBSTRING(:IDS FROM :J FOR :I - :J);
   SUSPEND;
 END
END


 
Виталий Панасенко   (2010-12-16 14:15) [7]

если ФБ 2,х, то можно без процедуры.. execute block Тебе в помощь


 
tomkat   (2010-12-16 15:02) [8]

можно без процедуры.. мне ж его из базы вызывать ... а вот внутри процедуры execute block  не вызывается :-(


 
Виталий Панасенко   (2010-12-17 15:50) [9]

кто-то из нас "гонит". особой разницы между процедурой и блоком нету...кроме одного: для блока не нужно "ковырять" БД. а так я "потерялся"...и не понял, почему блок нельзя юзать.. ну то от лукавого!


 
Правильный$Вася   (2010-12-17 17:09) [10]

а насколько велик этот список дат?
не вылезет ли он за ограничение на длину строки или запроса?



Страницы: 1 вся ветка

Текущий архив: 2013.08.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
15-1364059471
DevilDevil
2013-03-23 21:24
2013.08.25
Happy life secret


2-1355471316
Sinister
2012-12-14 11:48
2013.08.25
Долго выполняется сохранение файла


2-1355222180
Darvin
2012-12-11 14:36
2013.08.25
Программная инсталляция драйвера


1-1311150598
FosterGrand
2011-07-20 12:29
2013.08.25
Сбой кодировки в ToolBar


2-1355296974
Вася
2012-12-12 11:22
2013.08.25
ШИМ из LPT порта