cursor

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

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

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

Описание

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

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

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

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

Создание

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

Свойства

расширить все

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

Результаты запроса SQL, заданные как массив ячеек, таблица, структура, число или массив набора данных. После выполнения exec function, это свойство пустое. 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. The 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