exponenta event banner

курсор

(Не рекомендуется) Курсор базы данных

cursor объект не рекомендуется. Используйте fetch вместо этого функция. Дополнительные сведения см. в разделе Вопросы совместимости.

Функция прокручиваемого курсора не имеет замены.

Описание

После подключения к реляционной базе данных с помощью драйверов ODBC или JDBC можно выполнять действия с помощью подключения к базе данных. Для импорта данных в MATLAB ® из базы данных и выполнения операций с базой данных необходимо создать cursor объект. Toolbox™ базы данных использует этот объект для извлечения строк из таблиц базы данных и выполнения инструкций SQL.

Существует два типа курсоров базы данных: базовый и прокручиваемый. Базовые курсоры позволяют последовательно импортировать данные в SQL-запросе. Однако прокручиваемые курсоры позволяют импортировать данные из указанного смещения в наборе данных.

Быстрый импорт данных с помощью SQL SELECT оператор, используйте select функция. Для импорта данных с полной функциональностью используйте exec и fetch функции. Различия см. в разделе Импорт данных с помощью приложения Database Explorer или командной строки.

A cursor объект остается открытым до тех пор, пока вы не закроете его с помощью close функция.

Создание

Создать cursor с использованием exec функция.

Свойства

развернуть все

Свойства драйвера ODBC и JDBC

Результаты запроса SQL, указанные как массив ячеек, таблица, структура, числовой массив или массив набора данных. После запуска exec функция, это свойство пусто. fetch функция заполняет это свойство импортированными данными из выполненного SQL-запроса.

Чтобы задать формат возврата данных, используйте setdbprefs функция.

Примечание

Значение массива наборов данных будет удалено в следующем выпуске. Вместо этого используйте таблицу.

Пример: [15×5 table]

Типы данных: double | struct | table | cell

Это свойство доступно только для чтения.

Число строк для импорта за один раз, указанное как положительный числовой скаляр.

Типы данных: double

Это свойство доступно только для чтения.

SQL-запрос, указанный как символьный вектор. Чтобы изменить запрос SQL, создайте cursor и укажите SQL-запрос во входном аргументе sqlquery из exec функция.

Сведения о языке запросов SQL см. в руководстве по SQL.

Пример: 'SELECT * FROM productTable'

Типы данных: char

Это свойство доступно только для чтения.

Сообщение об ошибке, указанное как символьный вектор. Пустой символьный вектор указывает, что exec или fetch функции успешно выполнены. Если это свойство пусто после выполнения exec, то инструкция SQL выполнена успешно. Если это свойство пусто после выполнения fetch, то импорт данных успешно завершен. В противном случае свойство заполняется возвращенным сообщением об ошибке.

Для отправки сообщений об ошибках в командное окно используйте setdbprefs функция. Введите следующий код:

setdbprefs('ErrorHandling','report');
sqlquery = 'SELECT * FROM invalidtablename';
curs = exec(conn,sqlquery)

Сохранение сообщений об ошибках в Message вместо этого введите следующий код:

setdbprefs('ErrorHandling','store');
sqlquery = 'SELECT * FROM invalidtablename';
curs = exec(conn,sqlquery)

Пример: 'Table 'schame.InvalidTableName' doesn't exist'

Типы данных: char

Это свойство доступно только для чтения.

Тип курсора базы данных, указанный как одно из этих значений.

СтоимостьТип курсора базы данных

'ODBCCursor Object'

cursor объект, созданный с помощью подключения к базе данных ODBC

'Database Cursor Object'

cursor объект, созданный с помощью подключения к базе данных JDBC

Это свойство доступно только для чтения.

Оператор, указанный как объект оператора C или объект оператора Java.

Пример: [1×1 com.mysql.jdbc.StatementImpl]

Это свойство доступно только для чтения.

Прокручиваемый курсор, заданный как логическое значение. Стоимость 0 идентифицирует cursor объект как базовый. Стоимость 1 идентифицирует cursor объект как прокручиваемый.

Примечание

Это свойство скрыто.

Типы данных: logical

Это свойство доступно только для чтения.

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

Типы данных: double

Свойства драйвера JDBC

Это свойство доступно только для чтения.

Соединение JDBC, указанное как connection создается путем подключения к базе данных с помощью драйвера JDBC.

Пример: [1×1 database.jdbc.connection]

Это свойство доступно только для чтения.

Результирующий набор, указанный как объект результирующего набора Java.

Пример: [1×1 com.mysql.jdbc.JDBC4ResultSet]

Это свойство доступно только для чтения.

Курсор базы данных, указанный как внутренний объект Java, представляющий cursor объект.

Пример: [1×1 com.mathworks.toolbox.database.sqlExec]

Это свойство доступно только для чтения.

Импортированные данные, указанные как внутренний объект Java, представляющий импортированные данные.

Пример: [1×1 com.mathworks.toolbox.database.fetchTheData]

Функции объекта

attr(Подлежит удалению) Извлечение атрибутов столбцов в наборе выбранных данных
close(Не рекомендуется) Закрыть курсор
cols(Подлежит удалению) Получение количества столбцов в наборе выбранных данных
columnnames(Подлежит удалению) Получение имен столбцов в наборе выбранных данных
fetch(не рекомендуется) Импорт данных в рабочую область MATLAB из курсора базы данных
fetchmulti(Подлежит удалению) Импорт данных из нескольких результирующих наборов
get(Подлежит удалению) Получение свойств объекта
isopen(Не рекомендуется) Определите, открыт ли курсор базы данных
querytimeout(Подлежит удалению) Укажите время успешного выполнения SQL-запросов
rows(Подлежит удалению) Возвращает количество строк в наборе выбранных данных
set(Подлежит удалению) Задайте свойства курсора базы данных
width(Подлежит удалению) Возвращает размер поля столбца в наборе выбранных данных

Примеры

свернуть все

Используйте собственное подключение ODBC для импорта данных продукта из базы данных Microsoft ® SQL Server ® в MATLAB. Затем определите наибольшую стоимость единицы среди продуктов.

Создайте подключение базы данных ODBC к базе данных Microsoft SQL Server с проверкой подлинности Windows ®. Укажите пустое имя пользователя и пароль. База данных содержит таблицуproductTable.

datasource = 'MS SQL Server Auth';
conn = database(datasource,'','');

Проверьте подключение к базе данных. Если Message пустое свойство, подключение выполнено успешно.

conn.Message
ans =

     []

Выберите все данные из таблицы productTable с использованием connection объект. Назначение SQL SELECT оператор для переменной sqlquery. cursor содержит выполненный SQL-запрос.

sqlquery = 'SELECT * FROM productTable';
curs = exec(conn,sqlquery)
curs = 

   cursor with properties:

         Data: 0
     RowLimit: 0
     SQLQuery: 'SELECT * FROM productTable'
      Message: []
         Type: 'ODBCCursor Object'
    Statement: [1×1 database.internal.ODBCStatementHandle]

Для соединения ODBC Type свойство содержит ODBCCursor Object. Для соединений JDBC: Type свойство содержит Database Cursor Object.

Импорт данных из таблицы в MATLAB.

curs = fetch(curs);
data = curs.Data;

Определите наибольшую стоимость единицы в таблице.

max(data.unitCost)
ans =

    24

После завершения работы с cursor объект, закройте его. Закройте подключение к базе данных.

close(curs)
close(conn)

Вопросы совместимости

развернуть все

Не рекомендуется начинать с R2018b

См. также

| | |

Представлен до R2006a