Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



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


4-1266740974
leonidus
2010-02-21 11:29
2013.08.25
Определение разрядности программы


15-1363729018
Германн
2013-03-20 01:36
2013.08.25
Windows 7 trial


2-1355737828
aka
2012-12-17 13:50
2013.08.25
Задания на вычислительную практику


15-1363663611
Йети
2013-03-19 07:26
2013.08.25
где скачать BDE?




   Наверх