курсор

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

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

Функциональность курсора с возможностью прокрутки не имеет никакой замены.

Описание

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

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

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

Объект 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 как с возможностью прокрутки.

Примечание

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

Типы данных: логический

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

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

Типы данных: 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®authentication. Задайте пустое имя пользователя и пароль. База данных содержит таблицу 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