Текущее время: Ср, июл 30 2025, 22:48

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 03 2008, 21:03 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, ноя 01 2006, 22:58
Сообщения: 794
Откуда: Заарбрюкен
Пол: Мужской
Ну что-то типа попробовать можно...
SELECT CONCAT(name1, name2, ...) as fieldname from ... where fieldname LIKE '%что-то%'


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 03 2008, 21:58 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Rovik написал(а):
Какая логика SAPа при добавлении штатными средствами нового поля ?
1) Выбрать для поля таблицы соответствующий тип данных для конкретной БД и его размерность.
2) Сгенерировать для этого поля имя (оно может отличаться от того, которое указывается в SAP).
3) Прописывает в своих внутренних таблицах соответствие логической информации (SAP) и физической (БД).
3) Выдает на БД команду для создания таблицы и индексов для нее.
4) ... вероятно что-то еще.

Т.е. это системный уровень SAP-контроля объектов БД.

Если указать, что некое поле является пользовательским (custom-уровень контроля), то SAPу будет достаточно только передать пункты 1-3 в ответственность пользователю (разработчику).

Вот собственно и все.
После всего этого остаётся только надеятся что у Вас нет прав ни на любой доступ к любым компонентам SAP.
Для интереса почитайте, если не ошибаюсь, BC430 - abap dictionary.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 04 2008, 07:20 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Rovik написал(а):
CREATE CALCULATED FIELD 'NAME1234' ON TABLE 'LFA1' (NAME1 + NAME2 + NAME3 + NAME4).
CREATE INDEX 'IDX_LFA1_NAME1234' ON 'NAME1234' FOR TABLE 'LFA1'.
Индекс при запросах типа LIKE '%текст%' не используется!
Если же LIKE 'текст%', то индекса по NAME1 будет более чем достаточно.

Rovik написал(а):
Как написать выборку подобную этой:
Для этого есть NATIVE SQL.

Rovik написал(а):
Сгенерировать для этого поля имя (оно может отличаться от того, которое указывается в SAP).
Я почему-то уверен, что имена в словаре и в БД всегда совпадают. Пусть коллеги меня поправят. (Понятно, что кластерные таблицы и таблицы пула совсем из другой оперы.)

Rovik написал(а):
Если указать, что некое поле является пользовательским (custom-уровень контроля),
Первый раз слышу про уровни контроля. Если Вы это не сами придумали, а где-то прочитали, то дайте ссылочку, плиз. Особый контроль SAP имеет только над мандантом.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 04 2008, 10:41 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 16 2008, 00:11
Сообщения: 33
Похоже остается только полная выборка всей таблицы на клиента и затем уже применение нужного фильтра.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: re
СообщениеДобавлено: Пт, июл 04 2008, 11:12 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
по name1 пусть ищут, зачем так напрягаться


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: re
СообщениеДобавлено: Пт, июл 04 2008, 11:40 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 16 2008, 00:11
Сообщения: 33
trop написал(а):
по name1 пусть ищут, зачем так напрягаться

Задача такая - сделать поиск по целому имени.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 04 2008, 15:00 
Специалист
Специалист

Зарегистрирован:
Чт, июн 23 2005, 18:05
Сообщения: 119
Rovik написал(а):
Еще один вопрос в тему.
SELECT ...
INTO TABLE ...
FROM ...
WHERE NAME1+NAME2+NAME3+NAME4 LIKE '%чего-то там ...%'.


Ну например так:
Code:
SELECT ...
INTO TABLE ...
FROM ...
WHERE NAME1 = l_ttt+0(8) AND NAME2 = l_ttt+8(2) AND NAME3 = l_ttt+10(1) и т.д.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 04 2008, 15:18 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
При поиске по lfa1-name1 нужно приводить символы к одному регистру - тоже аргумент в пользу использования внутренней таблицы или поля в словаре без свойства домена LowerCase.

_________________
С уважением, VGA
Мой блог


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB