выборка

(Не рекомендуемый), Импортируют данные в рабочее пространство MATLAB от курсора базы данных

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

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

Синтаксис

curs = fetch(curs)
curs = fetch(curs,rowlimit)
curs = fetch(___,Name,Value)

Описание

пример

curs = fetch(curs) импорт все строки данных из выполняемого SQL-запроса в свойство Data объекта cursor. Используйте объект cursor исследовать импортированные данные и его структуру.

Внимание:

Отъезд cursor и открытых объектов connection или перезапись открытых объектов могут привести к неожиданному поведению. После того, как вы закончите работать с этими объектами, необходимо закрыть их использующий close.

curs = fetch(curs,rowlimit) импортирует максимальное количество строк данных, как задано в rowlimit, от выполняемого SQL-запроса.

curs = fetch(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущих синтаксисах. Например, curs = fetch(curs,'AbsolutePosition',5); импортирует данные с помощью абсолютного смещения положения в курсоре с возможностью прокрутки, тогда как curs = fetch(curs,'RelativePosition',10); импортирует данные с помощью относительного смещения положения.

Примеры

свернуть все

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

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

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

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

conn.Message
ans =

     []

Выполните SQL-запрос с помощью функции exec и соединения с базой данных. Затем импортируйте все данные от productTable.

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

  cursor with properties:

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

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

Отобразите данные в свойстве объекта cursor Data.

curs.Data
ans =

  15×5 table

    productNumber    stockNumber    supplierNumber    unitCost    productDescription
    _____________    ___________    ______________    ________    __________________

     9               1.2597e+05     1003              13          'Victorian Doll'  
     8               2.1257e+05     1001               5          'Train Set'       
     7               3.8912e+05     1007              16          'Engine Kit'      
     2               4.0031e+05     1002               9          'Painting Set'    
     4               4.0034e+05     1008              21          'Space Cruiser'   
     1               4.0035e+05     1001              14          'Building Blocks' 
     5               4.0046e+05     1005               3          'Tin Soldier'     
     6               4.0088e+05     1004               8          'Sail Boat'       
     3                 4.01e+05     1009              17          'Slinky'          
    10               8.8865e+05     1006              24          'Teddy Bear'      
    11               4.0814e+05     1004              11          'Convertible'     
    12               2.1046e+05     1010              22          'Hugsy'           
    13               4.7082e+05     1012              17          'Pancakes'        
    14                5.101e+05     1011              19          'Shawl'           
    15               8.9975e+05     1011              20          'Snacks' 

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

data = curs.Data;
max(data.unitCost)
ans =

    24

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

close(curs)
close(conn)

Входные параметры

свернуть все

Курсор базы данных, заданный как объект cursor, создал использование функции exec.

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

Если rowlimit является 0, fetch возвращает все строки данных.

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

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: curs = fetch(curs,'RelativePosition',10);

Абсолютное смещение положения, заданное как пара, разделенная запятой, состоящая из 'AbsolutePosition' и числового скаляра, который указывает на абсолютное значение смещения положения. Когда вы задаете абсолютное значение смещения положения, fetch импортирует данные, начинающие с позиции курсора, равной этому значению, независимо от текущей позиции курсора. Скаляр может быть положительным числом, чтобы показать выбирающие данные из запуска набора данных или отрицательное число, чтобы показать выбирающие данные из конца набора данных. Этот аргумент пары "имя-значение" доступен только, когда вы создаете объект cursor с возможностью прокрутки с помощью exec.

Пример: 'AbsolutePosition',5

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

Относительное смещение положения, заданное как пара, разделенная запятой, состоящая из 'RelativePosition' и числового скаляра, который указывает на относительное значение смещения положения. Когда вы задаете относительное значение смещения положения, fetch добавляет текущее значение позиции курсора в относительное значение смещения положения. Затем fetch импортирует данные, начинающие с получившегося значения. Скаляр может быть положительным числом, чтобы показать импортирующие данные после текущей позиции курсора в наборе данных или отрицательного числа, чтобы показать импортирующие данные перед текущей позицией курсора в наборе данных. Этот аргумент пары "имя-значение" доступен только, когда вы создаете объект cursor с возможностью прокрутки с помощью exec.

Пример: 'RelativePosition',10

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

Выходные аргументы

свернуть все

Курсор базы данных, возвращенный как объект cursor, заполняется с импортированными данными в свойстве Data. Можно задать формат выходных данных в свойстве Data при помощи функции setdbprefs.

Советы

  • Если у вас есть нативная связь ODBC, что вы установили использование database, то, запустив fetch на обновлениях объекта cursor сам объект входа cursor. В зависимости от того, обеспечиваете ли вы выходной аргумент, тот же объект копируется в вывод. Поэтому только один объект cursor существует в памяти для любого из этих использований:

    % First use
    curs = fetch(curs)
    % Second use
    fetch(curs)
    % Third use
    curs2 = fetch(curs)

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

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

Не рекомендуемый запуск в R2018b

Смотрите также

| | | | |

Внешние веб-сайты

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