exponenta event banner

SQLPreparedStatement

Подготовленная инструкция SQL

Описание

SQLPreparedStatement позволяет создать подготовленную инструкцию SQL. Подготовленная SQL инструкция может импортировать, обновлять, вставлять или удалять данные в базе данных. Кроме того, подготовленная SQL инструкция может вызывать хранимые процедуры в базе данных.

Инструкция SQL может быть одной из следующих инструкций:

  • SELECT

  • INSERT

  • UPDATE

  • DELETE

  • CALL

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

Примечание

Если используются подготовленные инструкции SQL с драйвером JDBC и базой данных, отличной от Microsoft ® SQL Server ® или PostgreSQL, поведение подготовленной инструкции SQL зависит от реализации этой инструкции драйвером JDBC. Поведение может привести к неожиданным результатам.

Создание

Создание SQLPreparedStatement объект с databasePreparedStatement функция.

Свойства

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

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

SQL подготовил запрос инструкции, указанный как строковый скаляр.

Пример: "SELECT * FROM inventoryTable WHERE inventoryDate > ? AND inventoryDate < ?"

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

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

Число параметров, указанное как числовой скаляр для общего числа параметров в подготовленной инструкции SQL.

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

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

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

Тип параметра является одним из следующих значений типа данных:

  • "double"

  • "string"

  • "datetime"

  • "logical"

Пример: ["string" "string"]

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

Значения параметров, заданные как массив ячеек значений для привязки с определенными параметрами в подготовленной инструкции SQL.

Пример: {2 5}

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

Функции объекта

bindParamValuesПривязать значения к параметрам
closeЗакрыть подготовленную инструкцию SQL

Примеры

свернуть все

Создайте подготовленную инструкцию SQL для импорта данных из базы данных Microsoft ® SQL Server ® с использованием подключения к базе данных JDBC. Используйте SELECT Инструкция SQL для запроса SQL. Импортируйте данные из базы данных и просмотрите результаты.

Создайте подключение базы данных JDBC к базе данных SQL Server с проверкой подлинности Windows ®. Укажите пустое имя пользователя и пароль .

datasource = 'MSSQLServerJDBCAuth';
conn = database(datasource,'','');

Создайте инструкцию SQL, подготовленную для импорта данных из базы данных SQL Server с использованием подключения базы данных JDBC. Вопросительные знаки в SELECT Инструкция SQL указывает, что она является подготовленной инструкцией SQL. Этот оператор выбирает все данные из таблицы базы данных inventoryTable для запаса с датой инвентаризации в указанном диапазоне дат.

query = strcat("SELECT * FROM inventoryTable ", ...
    "WHERE inventoryDate > ? AND inventoryDate < ?");
pstmt = databasePreparedStatement(conn,query)
pstmt = 
  SQLPreparedStatement with properties:

           SQLQuery: "SELECT * FROM inventoryTable where inventoryDate > ? AND inventoryDate < ?"
     ParameterCount: 2
     ParameterTypes: ["string"    "string"]
    ParameterValues: {[]  []}

pstmt является SQLPreparedStatement объект со следующими свойствами:

  • SQLQuery - Запрос подготовленной инструкции SQL

  • ParameterCount - Счетчик параметров

  • ParameterTypes - Типы параметров

  • ParameterValues - Значения параметров

Привязка значений параметров в подготовленной инструкции SQL. Выберите оба параметра в подготовленной инструкции SQL, используя их числовые индексы. Укажите значения для привязки в качестве диапазона дат запасов между 1 января 2014 года и 31 декабря 2014 года. Сопоставление формата дат в базе данных. bindParamValues функция обновляет значения в ParameterValues имущества pstmt объект.

selection = [1 2];
values = {"2014-01-01 00:00:00.000", ...
    "2014-12-31 00:00:00.000"};
pstmt = bindParamValues(pstmt,selection,values)
pstmt = 
  SQLPreparedStatement with properties:

           SQLQuery: "SELECT * FROM inventoryTable where inventoryDate > ? AND inventoryDate < ?"
     ParameterCount: 2
     ParameterTypes: ["string"    "string"]
    ParameterValues: {["2014-01-01 00:00:00.000"]  ["2014-12-31 00:00:00.000"]}

Импорт данных из базы данных с помощью fetch функции и связанных значений параметров. Результаты содержат четыре строки данных, которые представляют все запасы с датой инвентаризации в период с 1 января 2014 года по 31 декабря 2014 года.

results = fetch(conn,pstmt)
results=4×4 table
    productNumber    Quantity    Price         inventoryDate     
    _____________    ________    _____    _______________________

          1            1700      14.5     {'2014-09-23 09:38:34'}
          2            1200         9     {'2014-07-08 22:50:45'}
          3             356        17     {'2014-05-14 07:14:28'}
          7            6034        16     {'2014-08-06 08:38:00'}

Закройте подготовленную инструкцию SQL и подключение к базе данных.

close(pstmt)
close(conn)

Ограничения

  • SQLPreparedStatement объект поддерживает только подключение к базе данных JDBC.

Представлен в R2019b