Главная страница
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.009 c
4-1266740974
leonidus
2010-02-21 11:29
2013.08.25
Определение разрядности программы


2-1355580331
SolleN
2012-12-15 18:05
2013.08.25
Импорт данных из excel в delphi


15-1363829853
Дмитрий С
2013-03-21 05:37
2013.08.25
XE3 можно ли сделать, чтобы некоторые модули


15-1363699373
xayam
2013-03-19 17:22
2013.08.25
Особая клавиатура


15-1364034591
Artem
2013-03-23 14:29
2013.08.25
Просмотр файлов cookie (логины пароли) в firefox offline