fetch

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

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

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

Описание

пример

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 - имя аргумента и 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