SQLPreparedStatement

Подготовленные SQL- оператора

Описание

The 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 года. Соответствовать формату дат в базе данных. The 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)

Ограничения

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

Введенный в R2019b