Секция INTO / TO определяет параметры "устройства вывода" результирующего набора Запроса, полученного оператором SQL SELECT.

Общая синтексическая конструкция представлена в разделе описания команды SELECT - SQL.

Детальный синтаксис секции INTO / TO имеет следующий вид:

[INTO StorageDestination | TO DisplayDestination ]

Параметры

[INTO StorageDestination]

Определяет вывод результатов запрооса в Массив, в Курсор, или в Таблицу.

NoteОбратите внимание

Если вы не указываете секцию INTO, результаты Запроса отображаются в системном окне Browse (по-умолчанию). Для переадресации результатов Запроса на Принтер или в Файл используется ключевое слово TO .

В следующей таблице описываются возможные варианты результирующего набора Запроса, задаваемые в секции INTO.

StorageDestination Описание

ARRAY ArrayName

Размещение результатов Запроса в массив переменных памяти.

NoteПримечание

Если результирующий набор не содержит записей, то массив не создается.

CURSOR CursorName [NOFILTER | READWRITE]

Размещение результатов Запроса во временном Курсоре.

NoteПримечание

Если вы определяете имя уже открытой таблицы, Visual FoxPro генерирует сообщение об ошибке. После выполнения оператора SELECT, временный курсор открывается в свободной рабочей области,  она становится активной (текущей), курсор имеет статус read-only, если не используется ключевое слово READWRITE. Когда вы закрываете данный Курсор, он удаляется; временые курсоры размещаются во временных файлах, местоположение которых определяется системной переменной SORTWORK.

Опция NOFILTER создает временный курсор, который может использоваться в последующих Запросах.

NoteПримечание

При использовании опции NOFILTER повышается производительность выполнения запроса; временная таблица создается в этом случае на диске. Когда курсор закрывается - временная таблица удаляется с диска.

Опция READWRITE позволяет создавать модифицируемые курсоры. Если в исходных таблицах используются автоинкрементные поля, то при использовании опции READWRITE результирующий курсор не поддерживает поля указанного типа. Для модифицируемых курсоров можно создавать несколько структурных индексов, индексных Тэгов.

TABLE TableName [DATABASE DatabaseName [NAME LongTableName]]

Размещение результатов Запроса в Таблице.

Caution noteПредупреждение

Если вы используете имя уже существующей Таблицы (возможно, даже открытой), и в текущий момент действует установка SET SAFETY = OFF, Visual FoxPro перезапишет данную таблицу, без предупреждения.

Если вы не задаете расширение для таблицы, Visual FoxPro автоматически добавляет (.dbf). Результирующая таблица остается открытой после выполнения соответствующего оператора SELECT.

Опция DATABASE DatabaseName определяет имя базы данных, к которой прикрепляется результирующая таблица.

Опция NAME LongTableName определяет полное имя (расширенное), которое отождествляется с данной таблицей. Полное имя может содержать не более 128 символов, может быть использовано вместо короткого идентификатора для таблицы из указанной базы данных.

[TO DisplayDestination]

Перенаправляет результаты запроса в Файл, на Принтер, как текст на главное окно Visual FoxPro, или в некоторое активное пользовательское окно.

NoteОбратите внимание

Visual FoxPro игнорирует указанную секцию TO если вы также указали секцию INTO для рассматриваемого Запроса

В следующей таблице представлены возможные (поддерживаемые) параметры для секции TO - перенаправления результатов Запроса:

DisplayDestination Описание

FILE FileName [ADDITIVE]

Определяет имя текстового файла ASCII, в который будут выгружены результаты Запроса.

Опция ADDITIVE указывает, что результаты Запроса добавляются в существующий текстовый файл FileName.

PRINTER [PROMPT]

Перенаправляет результаты Запоса на Принтер.

Опция PROMPT отображает диалоговый бокс Выбора / Настройки принтера перед выводом результатов Запроса на печать. В указанном диалоговом боксе пользователь может настроить параметры печати, которые зависят от конкретного Драйвера Принтера.

SCREEN

Выводит результаты Запроса на главное окно Visual FoxPro или в активное пользовательское окно.

Expand imageКомментарии

В следующем программном коде представлены все Ключевые секции команды SELECT - SQL:

  CopyCode imageКопировать Код
SELECT Select_List
FROM Table_List
...[WITH (BUFFERING = lExpr)]
[WHERE Conditions]
[GROUP BY Column_List]
[UNION Clause]
[HAVING Conditions]
[ORDER BY Column_List]
[INTO Clause | TO Clause ]
[Additional_Display_Options]

Детальная информация о конкретной ключевой секции команды SQL SELECT представлена в следующих разделах:

Expand imageПример

В следующем примере демонстрируется размещение результатов Запроса в некоторой таблице, которая указывается в секции INTO TABLE TableName. В результирующий набор выбираются следующие поля: Company, Order_Date, и Shipped_On, из исходных таблиц Customer и Order, которые соединяются с помощью ключевого поля Cust_ID field; результирующая таблица имеет имя CustShip. После выполнения Запроса результаты отображаются в системном окне Browse. В операторе SELECT используются внутренние (локальные) алиасы исходных таблиц - для однозначной идентификации связующего поля Cust_ID, которое присутствует в обоих таблицах.

  CopyCode imageКопировать Код
CLOSE ALL
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\TestData')
SELECT TAlias1.company, TAlias2.order_date, TAlias2.shipped_on ;
FROM customer TAlias1, orders TAlias2 ;
WHERE TAlias1.cust_id = TAlias2.cust_id ;
INTO TABLE custship.dbf
BROWSE

Expand imageСм. также