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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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