powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как IB 6.5 обрабатывать текстовые строки?
29 сообщений из 29, показаны все 2 страниц
Как IB 6.5 обрабатывать текстовые строки?
    #32653270
Дмитрий Польской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, есть последовательность символов, переданная ввиде входного параметра (varchar) в ХП, - мама%мыла%раму. Как в теле ХП можно обработать данную строку, а именно разбивать по словам находя символ '%'?
Или может кто знает как использовать массив значений в качестве параметра ХП?
Спасибо за участие.
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653339
Dr_Mike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AFAIK, массив никак
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653372
Dr_Mike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По поводу п.1 - только UDF
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653379
Дмитрий Польской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr_MikeПо поводу п.1 - только UDF
Да-а-а, по-моему это единственный вариант :(
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653407
Dr_Mike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, а смысл использования таких параметров ХП можешь объяснить?
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653434
Дмитрий Польской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr_MikeКстати, а смысл использования таких параметров ХП можешь объяснить?
Могу. Имеется ХП, возвращающая информацию о материале или проводке. Пользователь (с помощью спец. интерфейса) может указать, что его интересуют проводки, в которых, например, 'Счет' <> 1000 и 'Счет' <> 201 и т.д. ... и 'Склад' = Склад металла и 'Склад' = Склад запчастей. Т.е. кол-во критериев (а следовательно входных параметров ХП) для выборки не известно.
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653439
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Динамически формировать запрос на клиенте не пробовал?
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653442
Дмитрий Польской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийДинамически формировать запрос на клиенте не пробовал?
Пробовал. Сейчас так реализованно, но есть некоторые ограничения и вот ищу пути их устранения
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653444
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Польской МимопроходящийДинамически формировать запрос на клиенте не пробовал?
Пробовал. Сейчас так реализованно, но есть некоторые ограничения...Какие именно?
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653445
Dr_Mike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какие ограничения?
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653447
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот если бы уважаемый Дмитрий Польский использовал бы FIBPlus ( МП, нет, нет, только не по голове! ), то мог бы использовать макросы . Например, в компоненте TpFIBDataSet:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  DataSet.SelectSQL.Text := 'Select * from DataTable where 1=1 and  ' +
  '@@Condition@';

  DataSet.ParamByName('Condition').AsString := '"Счет" <> ''20-6''';

  DataSet.Open;


Вот. И не грузить сервер всяким безобразием.
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653453
Dr_Mike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mvА вот если бы уважаемый Дмитрий Польский использовал бы FIBPlus ( МП, нет, нет, только не по голове! ), то мог бы использовать макросы . Например, в компоненте TpFIBDataSet:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  DataSet.SelectSQL.Text := 'Select * from DataTable where 1=1 and  ' +
  '@@Condition@';

  DataSet.ParamByName('Condition').AsString := '"Счет" <> ''20-6''';

  DataSet.Open;


Вот. И не грузить сервер всяким безобразием.


Честно говоря, не заметил никаких преимуществ использования макросов в данном случае по сравнению с просто формированием SQL.Text
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653466
Дмитрий Польской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий Дмитрий Польской МимопроходящийДинамически формировать запрос на клиенте не пробовал?
Пробовал. Сейчас так реализованно, но есть некоторые ограничения...Какие именно?
Тут долго объяснять. Понимаешь, данные представлены ввиде древовидной структуры. Пользователь должен иметь возможность получения информации о проводках материалов, "хранящихся" в некоторой папке (узла) и во всех в нее входящих. Обход дерева, как сам понимаешь, осуществляется при помощи рекрусивной процедуры, выходной результат которой обрабатывается при помощи FOR SELECT ... ну и все в таком стиле. Сейчас все работает в два этапа: 1. ХП возвращает набор общих значений; 2. Запрос фильтрует результат ХП. Но проблема в том, что некоторые параметры запроса нужны в теле ХП.
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653475
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий ПольскойТут долго объяснять. Понимаешь, данные представлены ввиде древовидной структуры. Пользователь должен иметь возможность получения информации о проводках материалов, "хранящихся" в некоторой папке (узла) и во всех в нее входящих. Обход дерева, как сам понимаешь, осуществляется при помощи рекрусивной процедуры, выходной результат которой обрабатывается при помощи FOR SELECT ... ну и все в таком стиле. Сейчас все работает в два этапа: 1. ХП возвращает набор общих значений; 2. Запрос фильтрует результат ХП. Но проблема в том, что некоторые параметры запроса нужны в теле ХП.Имхо, тут проблема в неверной/неудачной (на мой взгляд) структуре данных.
Денормализацию деревянной структуры провести не пробовал?
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653483
Дмитрий Польской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чем неверной?
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653485
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий ПольскойВ чем неверной?А где?
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653491
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то интересно проектируется система - сперва создаем офигенную структуру, потом думаем, как ее обрабатывать...
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653494
Дмитрий Польской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты сказал, что используемая древовидная структура данных -неверна/неудачна. Аргументируй пожалуйста.
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653496
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И какова структура дерева? Я тоже сначала пытался рекурсию использовать, потом решил отказаться, так как сильно медленно все работает.

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653497
Дмитрий Польской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mvКак-то интересно проектируется система - сперва создаем офигенную структуру, потом думаем, как ее обрабатывать...
Такую структуру хотел заказчик, так что ...
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653498
Dr_Mike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий ПольскойТы сказал, что используемая древовидная структура данных -неверна/неудачна. Аргументируй пожалуйста.

Было бы неплохо для начала структуру предъявить
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653499
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий ПольскойТы сказал, что используемая древовидная структура данных -неверна/неудачна. Аргументируй пожалуйста.Не могу.
Поднимите мне веки!
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653500
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Польской mvКак-то интересно проектируется система - сперва создаем офигенную структуру, потом думаем, как ее обрабатывать...Такую структуру хотел заказчик, так что ...Он и таблички рисовал, что да как?
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653501
Dr_Mike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я, например, не верю, что дерево проводок может иметь ветви неограниченной длины, так что вполне можно провести денормализацию.
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653502
Дмитрий Польской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, но ухожу домой. Если что, то завтра продолжим.
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653503
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr_MikeЯ, например, не верю, что дерево проводок может иметь ветви неограниченной длины, так что вполне можно провести денормализацию.Поддерживаю
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32653504
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, если покажешь структуру, будет проще разобраться? Она у тебя действительно - дерево произвольной глубины?
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32654061
Дмитрий Польской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Древовидную структуру имеют только справочники материалов и контактов. Структура самая простая со всеми вытекающими последствиями:

id
material_name
...
parent_id

где parent_id внешний ключ на id
...
Рейтинг: 0 / 0
Как IB 6.5 обрабатывать текстовые строки?
    #32655189
Dr_Mike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Покажи саму ХП
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как IB 6.5 обрабатывать текстовые строки?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]