Main Content

isopen

(Not recommended) Determine if database cursor is open

The isopen function is not recommended. There is no replacement for this functionality. To import data, use the fetch function. For details, see Version History.

Description

i = isopen(curs) returns 1 if the database cursor is open and 0 if the database cursor is closed or invalid.

example

Examples

collapse all

Connect to a Microsoft® SQL Server® database and verify the database cursor. Then, import data from the database into MATLAB®. Determine the highest unit cost among the retrieved products in the table. Close the database cursor and database connection.

Create an ODBC database connection to a Microsoft SQL Server database with Windows® authentication. Specify a blank user name and password. The database contains the table productTable.

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

Check the database connection. If the Message property is empty, the connection is successful.

conn.Message
ans =

     []

Create a cursor object by executing an SQL query in the database. Select all the data from the table productTable by using the connection object, and then sort the data by the product number.

sqlquery = 'SELECT * FROM productTable ORDER BY productNumber';
curs = exec(conn,sqlquery);

Determine if the database cursor is open. The isopen function returns the numeric scalar 1, which means the database cursor is open.

i = isopen(curs)
i =

     1

Import data from the executed SQL query and display the first three rows.

curs = fetch(curs);
curs.Data(1:3,:)
ans =

  3×5 table

    productNumber    stockNumber    supplierNumber    unitCost    productDescription
    _____________    ___________    ______________    ________    __________________

    1                4.0035e+05     1001              14          'Building Blocks' 
    2                4.0031e+05     1002               9          'Painting Set'    
    3                  4.01e+05     1009              17          'Slinky'          

Determine the highest unit cost in the table.

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

    24

After you finish working with the cursor object, close it.

close(curs)

Determine if the database cursor is closed. The isopen function returns the numeric scalar 0, which means the database cursor is closed. If the cursor object is invalid, the isopen function returns the same result.

i = isopen(curs)
i =

     0

Close the database connection.

close(conn)

Input Arguments

collapse all

Database cursor, specified as a cursor object created using the exec function.

Version History

Introduced in R2015b

collapse all

R2018b: isopen function is not recommended

The isopen function is not recommended. Use the fetch function to import data. Some differences between the workflows might require updates to your code.

There are no plans to remove the isopen function at this time.

Update Code

Use the fetch function with the connection object to import data from a database in one step.

In prior releases, you wrote multiple lines of code to create the cursor object, determine if the cursor object is open, and import data. For example:

curs = exec(conn,sqlquery);
i = isopen(curs);
curs = fetch(curs);
results = curs.Data;
close(curs)

Now you can import data in one step using the fetch function.

results = fetch(conn,sqlquery);

There is no replacement functionality for the isopen function.

See Also

| |

External Websites