exponenta event banner

усилие

(не рекомендуется) Импорт данных в рабочую область 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