Открывает таблицу и связанные с ней индексные файлы или открывает представление SQL (SQL view).

USE [[DatabaseName!] TableName | SQLViewName | ?]
[IN nWorkArea | cTableAlias] [ONLINE] [ADMIN] [AGAIN]
[NOREQUERY [nDataSessionNumber]] [NODATA]
[INDEX IndexFileList | ? [ORDER [nIndexNumber | IDXFileName
| [TAG] TagName [OF CDXFileName] [ASCENDING | DESCENDING]]]]
[ALIAS cTableAlias] [EXCLUSIVE] [SHARED] [NOUPDATE]
[CONNSTRING cConnectionString | nStatementHandle ]

Параметры

[DatabaseName!]TableName

Указывает имя открываемой таблицы. Для того, чтобы открыть таблицу, не входящую в текущую базу данных, укажите перед именем таблицы имя базы данных с последующим разделителем в виде восклицательного знака (!).
Подсказка:
В Microsoft Windows 98 и более поздних операционных системах в именах файлов учитываются пробелы, поэтому избегайте использования лишних пробелов в значениях TableName и DatabaseName. Если имя таблицы или базы данных содержит пробелы, заключите его в кавычки или апострофы (" " или ' ').

Подсказка:
Для доступа к таблице, как включенной в базу данных, так и не включенной в неё, можно указывать полный путь. Однако вы можете несколько увеличить производительность, указывая только имя таблицы.

Замечание:
Если вы не указываете имя базы данных, Visual FoxPro сможет открыть таблицы, входящие только в текущую базу данных. Visual FoxPro не сможет корректно распознать путь к таблице, если имя диска или директории содержит восклицательный знак (!)

SQLViewName
Указывает имя представления SQL, открываемого в текущей базе данных. SQLViewName может быть также именем автономного представления (offline view), созданного посредством функции CREATEOFFLINE( ). Для получения дальнейших разъяснений см. Функция REATEOFFLINE( ). Вы можете создавать представления SQL посредством команды CREATE SQL VIEW.
?
Отображает диалог открытия таблицы (Use dialog box), который позволяет указать таблицу.
IN nWorkArea

Указывает рабочую область, в которой открывается таблица. Для того, чтобы закрыть таблицу, открытую в текущей рабочей области, примените команду USE без указания имени таблицы, но включите опцию IN clause и номер рабочей области. Опция IN поддерживает значение 0 в качестве номера рабочей области. Значение 0 указывает, что таблица будет открыта в свободной рабочей области с минимальным номером. Например, если таблицы открыты в рабочих областях с 1 по 10, следующая команда откроет таблицу customer в рабочей области с номером 11:
  Скопировать код
USE customer IN 0
IN cTableAlias
Указывает алиас (дополнительное имя) таблицы, которая будет открыта в рабочей области или таблицы, которая была открыта ранее. Если вы опустите опции nWorkArea и cTableAlias, таблица бдет открыта в текущей рабочей области.
ONLINE
Открывает автономное представление, созданное функцией CREATEOFFLINE( ). Вы можете указать имя автономного представления в параметре SQLViewName. Вы можете использовать функцию TABLEUPDATE( ) для обновления данных на сервере. Автономное представление должно быть открыто для монопольного использования. При открытии такого представления посредством команды USE, укажите в ней опцию EXCLUSIVE или выполните команду SET EXCLUSIVE ON. Вы не можете открывать или закрывать автономные представления, находясь внутри транзакций.
ADMIN
Открывает автономное представление, созданное функцией CREATEOFFLINE( ), но не передает на сервер обновления, которые могут быть сделаны в этом представлении. Открытие автономного представления в режиме ADMIN позволяет вам делать любые изменения в представлении не беспокоясь, что они будут переданы на сервер. Вы не можете открывать или закрывать автономные представления в режиме ADMIN, находясь внутри транзакции.
AGAIN
Для открытия таблицы одновременно в нескольких рабочих областях вы можете выполнить следующее:
  • Выбрать другую рабочую область и применить команду USE с указанием имени таблицы и опцией AGAIN.

  • Применить команду USE с именем таблицы и опцией AGAIN, указав другую рабочую область в опции IN.

Когда вы повторно открываете таблицу в другой рабочей области, эта таблица принимает атрибуты из рабочей области, где она была открыта впервые (назовем её первичной). Например, если таблица была открыта в первичной области только на чтение (read-only) или для монопольного использования, то после повторного открытия этой таблицы в другой рабочей области, она также будет открыта только на чтение или монопольно. Индексные файлы, открытые с таблицей в первичной области будут доступны и в другой рабочей области, даже если вы не указали их при повторном открытии таблицы. В области, в которой таблица открыта повторно, будет установлен доступ к записям таблице в физическом порядке их следования (как при установке SET INDEX TO 0). Вы можете открыть в другой рабочей области индексные файлы, которые не были открыты в первичной области. Это будет иметь эффект выполнения команды SET INDEX TO 0 в первичной области. Таблица, открытая повторно, получает по умолчанию алиас своей новой рабочей области. Вы можете указывать алиас всякий раз, когда открываете таблицу в нескольких областях, обеспечивая уникальность алиасов.
NOREQUERY [nDataSessionNumber]

Указывает, что данные из удаленного представления (remote SQL view) повторно не загружаются. Опция NOREQUERY допустима только для представлений SQL и обычно используется когда вы повторно открываете представление с опцией AGAIN. Использование опции NOREQUERY увеличивает производительность при большом объеме данных из-за отсутствия необходимости их повторной загрузки с сервера. Параметр nDataSessionNumber может быть использован для указания того, что повторная загрузка данных не производится для конкретной сессии. По умолчанию, если параметр nDataSessionNumber опущен, опция NOREQUERY распространяется на текущую сессию.
NODATA
Загружает структуру представления SQL, не заполняя её данными. Опция NODATA обеспечивает наиболее быстрый способ получения структуры представлений.
Замечание:
Открытие представлений с опцией NODATA всегда приводит к созданию для них новых курсоров. Когда вы используете опцию NODATA, Visual FoxPro создает конструкцию WHERE для представления с тем, чтобы она всегда возвращала значение "Ложно" (.F.). Поскольку этому условию не может удовлетворить ни одна запись в источнике данных, курсор удаленного представления не будет содержать ни одной строки. В связи с этим Visual FoxPro вернет структуру представления быстрее, поскольку не требуется времени для создания курсора с данными, имеющего больший размер.

Подсказка:
Использование опции NODATA будет более эффективным для представления или курсора, чем установка свойства MaxRecords в значение 0 с помощью функций DBSETPROP( ) или CURSORSETPROP( ). Когда вы используете свойство MaxRecords, вы должны ждать пока удаленное представление будет построено и наполнено данными согласно условию, заданному конструкцией WHERE и только потом строки этого представления будут передаваться в количестве, ограниченном значением свойства MaxRecords. Для дальнейших разъяснений см. Функция DBSETPROP( ) и Функция CURSORSETPROP( ).
INDEX IndexFileList
Определяет набор индексов, которые открываются вместе с таблицей. Если с таблицей связан индексный файл, содержащий структурный составной индекс, то такой файл будет автоматически открыт вместе с таблицей. Параметр IndexFileList может содержать любые комбинации имен файлов, содержащих как единственные индексы (по типу файлов .idx), так и составные, в том числе структурные индексы (по типу файлов .cdx). Вам нет надобности указывать расширения имен файлов .idx и .cdx за исключением того случая, когда их имена совпадают (или расширение имени файла отличается от .idx и .cdx - прим. переводчика). Первый индексный файл из списка IndexFileList является главным индексным файлом (master controlling index file), который определяет порядок доступа к записям в таблице и порядок их отображения. Однако, если первым в списке будет указан составной индексный файл, записи в таблице будут отображаться и обрабатываться в физическом порядке их следования. (Используйте для указания нужного порядка опцию ORDER - прим. переводчика).
INDEX ?
Отображает диалог открытия файлов со списком доступных для выбора индексных файлов.
ORDER [nIndexNumber]
Указывает главный индексный файл с единственным индексом (по типу .idx) или тег в составном индексном файле (по типу .cdx), который может отличаться от первого в списке IndexFileList. Файлы по типу .idx нумеруются в порядке, соответствующем их следованию в списке. Теги, если они есть, нумеруются в пределах составного индексного файла в том порядке, в котором они создавались. Вы также можете использовать команду SET ORDER для указания управляющего индексного файла или тега. См. команду SET ORDER для дальнейших объяснений. Если значение nIndexNumber равно 0, записи в таблице отображаются и обрабатываются в физическом порядке их следования, хотя индексные файлы остаются открытыми. Это позволяет индексам обновляться при обновлении таблицы. При опускании параметра в опции ORDER подразумевается, что значение параметра равно 0.
ORDER [IDXFileName]
Указывает, что файл типа .idx будет использован в качестве главного индексного файла.
ORDER [TAG TagName] [OF CDXFileName]

Указывает главный индексный тег в составном индексном файле типа cdx. Можно указать имя тега из структурного составного индексного файла или иного составного индексного файла. Если тег с таким именем есть в активном индекском файле, используйте опцию OF CDXFileName для указания имени нужного составного индексного файла.
ASCENDING
Указывает, что записи в таблице отображаются и обрабатываются в порядке возрастания индекса.
DESCENDING
Указывает, что записи в таблице отображаются и обрабатываются в порядке убывания индекса. Использование опции ASCENDING или DESCENDING не изменяет индексный файл или тег, а лишь определяет порядок, в котором будет осуществляться отображение и доступ к записям таблицы.
ALIAS cTableAlias
Создает алиас для таблицы, который может быть использован вместо имени таблицы в командах и функциях. Алиас должен начинаться с буквы или симпола подчеркивания и может содержать до 254 букв, цифр и знаков подчеркивания.
Замечание:
Visual FoxPro автоматически создает алиас, если алиас, указанный вами, содержит недопустимые символы.
Когда таблица открывается и опция ALIAS опущена, таблице автоматически присваивается алиас, который совпадает с её именем. Вы можете создать алиас, который отличается от принимаемого по умолчанию, используя опцию ALIAS. В ранних версиях FoxPro алиас должен был начинаться с буквы или символа подчеркивания и содержать до 10 букв, цифр и символов подчеркивания. Visual FoxPro присваивает алиас по умолчанию, если происходит конфликт между алиасами или если вы используете ключевое слово AGAIN при открытии таблицы в нескольких рабочих областях без указания алиаса в каждой рабочей области.
EXCLUSIVE
Открывает таблицу для монопольного (exclusive) использования в сети. Для получения дальнейших разъснений по монопольному использованию таблиц см. команду SET EXCLUSIVE .
SHARED
Открывает таблицу для совместного использования в сети. Опция SHARED позволяет вам открыть таблицу для совместного использования даже если действует установка SET EXCLUSIVE ON.
NOUPDATE
Предотвращает внесение изменений в таблицу и в её структуру.
CONNSTRING cConnectionString | nStatementHandle
Указывает строку для соединения посредством источника данных ODBC. cConnectionString может содержать строку параметров, обычно передаваемых функцией SQLCONNECT( ) или SQLSTRINGCONNECT( ). Если соединение уже установлено, то сослаться на него можно посредством переменной-указателя (handle), задавая её имя в nStatementHandle. Когда вы используете cConnectionString, Visual FoxPro передает строку соединения в удаленное представление, имя которого вы указали в SQLViewName, а затем использует эту строку для получения данных из указанного источника. Передача пустой строки ("") вызовет отображение диалога источника данных ODBC и обеспечит пользователю возможность выбрать источник данных.
Замечание:
Если вы укажете некорректные данные в строке соединения, источник данных отобразит диалог ввода начальных параметров (login и пр.) Если вы опустите опцию CONNSTRING cConnectionString, удаленное представление будет использовать определение текущего соединения. Для получения дальнейших разъяснений по использованию строки соединения с источником данных см. документацию по драйверу ODBC.
Visual FoxPro поддерживает перекрытие строки соединения по умолчанию для удаленных представлений и требует задавать параметр nStatementHandle для поддержки совместно используемых соединений.

Примечания

Если вы используете команду USE без указания имени таблицы и в текущей рабочей области имеется открытая таблица, Visual FoxPro закроет эту таблицу. Visual FoxPro также закроет таблицу в рабочей области, если в этой рабочей области открыть другую таблицу. Вы не можете одновременно открыть несколько таблиц в одной и той же рабочей области.

Если используется база данных, которая не является текущей, команда USE открывает базу данных автоматически, но при этом не делает её текущей базой данных. Когда закрывается таблица, база данных остается открытой.

Пример

В следующем примере открываются три таблицы в трех разных рабочих областях. Окно сессии данных (Data Session) открывается, чтобы показать, где открыты таблицы и отобразить алиас каждой из них.

  Скопировать код
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
ACTIVATE WINDOW View
USE customer IN 0 && Opens Customer table
USE employee IN 0 && Opens Employee table
USE products IN 0 && Opens Products table

См.также