Текущее время: Сб, июл 19 2025, 23:41

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


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

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


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

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