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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Как записать результат запроса NATIVE SQL во временную таблицу?
СообщениеДобавлено: Чт, фев 25 2010, 16:59 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 10 2010, 16:40
Сообщения: 13
Здравствуйте.

Я использую NATIVE SQL для связи с MS SQL SERVER. Мне нужно считать определенные поля из нескольких строк MY SQL таблицы и поместить их во временную.

Если написать так:

Code:
TYPES: BEGIN OF TSotrInf,
         tabnum(10),
         date_o(10),
         CardNumber(255),
         photo(50),
       END OF TSotrInf.

DATA: SotrInf TYPE TSotrInf OCCURS 0 WITH HEADER LINE.

EXEC SQL.
  CONNECT TO :SQL_CON
ENDEXEC.

EXEC SQL.
  SELECT tabnum, date_o, CardNumber, photo INTO :SotrInf FROM tosapr
ENDEXEC.

Такой код записывает только одну строку в header line, а мне нужно, чтобы заполнилась вся таблица SotrInf.

Подскажите, пожалуйста – можно ли с помощью NATIVE SQL за одну команду считать несколько записей во временную таблицу? Или придется считывать информацию построчно?

С уважением, Павел.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как записать результат запроса NATIVE SQL во временную таблицу?  Тема решена
СообщениеДобавлено: Чт, фев 25 2010, 17:11 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июн 02 2009, 22:28
Сообщения: 228
Откуда: MOW
Пол: Мужской
Я делал примерно так:
Code:
  EXEC SQL.
    OPEN c1 FOR
      select
       tabnum, date_o, CardNumber, photo
      from
       tosapr
  ENDEXEC.
  DO.
    CLEAR ls_sql1.
    EXEC SQL.
      FETCH NEXT c1 INTO :ls_sql1-tabnum, :ls_sql1-date_o, :ls_sql1-cardnumber, :ls_sql1-photo
    ENDEXEC.
    IF sy-subrc <> 0.
      EXIT.
    ELSE.
      APPEND ls_sql1 TO lt_sql1.
    ENDIF.
  ENDDO.
  EXEC SQL.
    CLOSE c1
  ENDEXEC.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как записать результат запроса NATIVE SQL во временную таблицу?
СообщениеДобавлено: Чт, фев 25 2010, 18:06 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Pavel86 написал(а):
Здравствуйте.

Я использую NATIVE SQL для связи с MS SQL SERVER. Мне нужно считать определенные поля из нескольких строк MY SQL таблицы и поместить их во временную.

Если написать так:

Code:
TYPES: BEGIN OF TSotrInf,
         tabnum(10),
         date_o(10),
         CardNumber(255),
         photo(50),
       END OF TSotrInf.

DATA: SotrInf TYPE TSotrInf OCCURS 0 WITH HEADER LINE.

EXEC SQL.
  CONNECT TO :SQL_CON
ENDEXEC.

EXEC SQL.
  SELECT tabnum, date_o, CardNumber, photo INTO :SotrInf FROM tosapr
ENDEXEC.

Такой код записывает только одну строку в header line, а мне нужно, чтобы заполнилась вся таблица SotrInf.

Подскажите, пожалуйста – можно ли с помощью NATIVE SQL за одну команду считать несколько записей во временную таблицу? Или придется считывать информацию построчно?

С уважением, Павел.

А F1 нажать, help прочитать? Например раздел EXEC SQL - PERFORMING

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как записать результат запроса NATIVE SQL во временную таблицу?
СообщениеДобавлено: Чт, фев 25 2010, 19:08 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 10 2010, 16:40
Сообщения: 13
raaleksandr
Спасибо.

sy-uname
Спасибо. Через PERFORMING действительно все просто получается. Подскажите, пожалуйста, как при этом работает SAP? Запрос к SQL SERVER посылается один раз или каждый раз считывается только одна строка, как и через курсор?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как записать результат запроса NATIVE SQL во временную таблицу?
СообщениеДобавлено: Пт, фев 26 2010, 05:39 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Pavel86 написал(а):
raaleksandr
Спасибо.

sy-uname
Спасибо. Через PERFORMING действительно все просто получается. Подскажите, пожалуйста, как при этом работает SAP? Запрос к SQL SERVER посылается один раз или каждый раз считывается только одна строка, как и через курсор?

Считывает построчно.
Цитата:
the system reads the result set line by line in a loop


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как записать результат запроса NATIVE SQL во временную таблицу?
СообщениеДобавлено: Пт, фев 26 2010, 08:01 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 10 2010, 16:40
Сообщения: 13
Besa
Ясно, спасибо.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

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


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

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


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

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