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

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


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

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


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

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