Текущее время: Вс, июл 20 2025, 00:31

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: проверка существования записи в бд
СообщениеДобавлено: Ср, фев 15 2006, 17:41 
Гость
вот такой вопрос, возможно ли сделать что-то вроде следующего:
Code:
select single kunnr
         into c_kunnr
         from kna1
         where kunnr eq c_kunnr.


т.е. проверить существование объекта, но не используя c_kunnr как леводопустимое (c_kunnr - константа) и не объявляя новых переменных.
т.б. интересна альтернатива абапным transporting no fields.

спасибо =)


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 15 2006, 17:47 
Гость
tables: kna1.

select single * from kna1 where kunnr eq c_kunnr.

if sy-subrc = 0.
* есть
else.
* нет
endif.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 15 2006, 19:16 
Гость
РМщик написал(а):
tables: kna1.

select single * from kna1 where kunnr eq c_kunnr.

if sy-subrc = 0.
* есть
else.
* нет
endif.


нет, в том-то и вопрос, чтобы не создавать лишних переменных (а tables - это еще и статическое глобальное описание целой структуры, которая вообще не требуется)


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 15 2006, 19:23 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Без переменной, боюсь, не получится. Из общих соображений, то, существование чего нужно проверить, задается некой переменной, в этом случае запрос
Code:
SELECT SINGLE <key> FROM  <some table>
       INTO var
       WHERE <key> = var.

не изменит значения var ни в каком случае.
Что до констант, то не будете же вы в программе номер поставщика или счета задавать константой... :shock:
А переменная на одно поле особо много "хлеба не попросит".

_________________
С уважением, Сергей Королев


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 15 2006, 19:32 
Гость
ну, "куннров", я для примера привел =)
просто чисто академический интерес. ведь для итаба можно сделать read ... transporting no fields и по subrc проверять существует ли запись, а для БД получается, что без into (явно или неявно) не получается, да и ломает писать переменную только для того, чтобы ею не воспользоваться =)


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 15 2006, 20:12 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 16:09
Сообщения: 202
select count( ) тататта into sy-tabix


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 15 2006, 21:00 
Гость
или
select single kunnr into sy-msgv1 ...
check sy-subrc.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, фев 16 2006, 14:24 
Гость
по поводу syst сап говорит, что типа низя их переписывать: пробовал, slin ругается =)
будут еще предложения?


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, фев 16 2006, 15:28 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 16:09
Сообщения: 202
SPikARD написал(а):
по поводу syst сап говорит, что типа низя их переписывать: пробовал, slin ругается =)
будут еще предложения?


а чем тебя sy-tabix или sy-index не устраивает ?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 20 2006, 15:25 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 14:35
Сообщения: 1519
Откуда: В ВЕЧНОМ БАНЕ
Snegurenok написал(а):
select count( ) тататта into sy-tabix

Ага и в табличке на миллион записей сей запрос барышня у вас прежде чем выдать результа оттарабанит все табличку на суммирование. Так что так делать йо как не советую...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 20 2006, 20:00 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 16:09
Сообщения: 202
Uukrul написал(а):
Snegurenok написал(а):
select count( ) тататта into sy-tabix

Ага и в табличке на миллион записей сей запрос барышня у вас прежде чем выдать результа оттарабанит все табличку на суммирование. Так что так делать йо как не советую...


во первых я не барышня
во вторых sum и count - ето разные функции


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 21 2006, 09:40 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
Snegurenok написал(а):
Uukrul написал(а):
Snegurenok написал(а):
select count( ) тататта into sy-tabix

Ага и в табличке на миллион записей сей запрос барышня у вас прежде чем выдать результа оттарабанит все табличку на суммирование. Так что так делать йо как не советую...


во первых я не барышня
во вторых sum и count - ето разные функции

count тоже аналитическая ф-я

_________________
полный SAPец


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 21 2006, 11:27 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Цитата:
count тоже аналитическая ф-я


Любая БД хранит число строк в таблице и выдаёт число строк по запросу count(*) за 0.0 мкс.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 21 2006, 12:17 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, ноя 17 2004, 18:38
Сообщения: 211
Откуда: МО
Пол: Мужской
sibrin написал:

Любая БД хранит число строк в таблице и выдаёт число строк по запросу count(*) за 0.0 мкс.


Боюсь что это не так. Выполнение count(*) например для таблицы с некоторым кол-вом милионов записей занимет весьма заметное время.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:   Тема решена
СообщениеДобавлено: Вт, фев 21 2006, 13:02 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
поспорим что нет?
нажими на кнопк колво записей в словаре
на самом деле идёт пересчёт, если есть индекс пересчитывается он

_________________
полный SAPец


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

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


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

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


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

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