Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2013.08.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





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


8-1232368698
golovanog
2009-01-19 15:38
2013.08.25
Проблема источников в OpenAL (проиграть 999 семплов одновременно)


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


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


4-1266492114
Alik
2010-02-18 14:21
2013.08.25
Вызов стандратного окна даты времени





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский