Для получения сведений о схеме представления используется метод
Как правило, экземпляры SQLViewSchema не создаются непосредственно в прикладном коде.
Для получения сведений о схеме данных одной или нескольких таблиц базы данных используется метод
Как правило, экземпляры SQLColumnSchema не создаются непосредственно в прикладном коде.
Если в результирующем наборе содержится несколько столбцов с одинаковыми именами, в объект, полученный в результате, будет добавлено только одно свойство с таким именем. Этому свойству будет присвоено значение последнего столбца с таким именем в результирующем наборе. Например, рассмотрим следующую инструкцию
SELECT customers.customerId, addresses.customerId FROM customers INNER JOIN addresses ON customers.customerId = addresses.customerId
Если эту инструкцию выполнить применительно к экземпляру SQLConnection, в котором имена столбцов имеют краткий формат, свойство
Для получения сведений о схеме таблицы базы данных используется метод
Как правило, экземпляры SQLSchema не создаются непосредственно в прикладном коде.
Например, если индекс базы данных создан с помощью следующей инструкции SQL, свойство
Например, если индекс базы данных создан с помощью следующей инструкции SQL:
свойство
Эти значения представляют различные порядки сортировки, которые могут быть заданы для столбца в таблице базы данных. Порядок сортировки — это способ сортировки и сравнения данных, например, различаются ли в базе данных символы верхнего и нижнего регистра.
Дополнительные сведения об определении и использовании последовательностей сортировки см. в разделе «COLLATE» приложения «
Если для значений класса хранения
Чтобы получить экземпляр SQLSchemaResult для вызова метода
Функциональные возможности класса SQLConnection подразделяются на несколько категорий:
Файл локальной базы данных SQL создается и открывается вызовом метода
Класс SQLConnection также предоставляет состояние для инструкций SQL, включая механизм выполнения нескольких инструкций в одной транзакции. Управление транзакциями осуществляется с использованием методов
Класс SQLConnection обеспечивает доступ к сведениям о схемах подключенных баз данных. Схема базы данных содержит определения ее таблиц, столбцов, индексов и триггеров. Дополнительные сведения см. в описании метода
Класс SQLConnection предоставляет возможность шифрования баз данных с использованием стандарта AES в режиме CCM. Это обеспечивает как проверку подлинности, так и конфиденциальность данных. Для шифрования базы данных необходимо при ее создании указать 16-байтный ключ (с помощью ByteArray). В дальнейшем этот ключ можно изменить с помощью метода
Экземпляр SQLConnection может использоваться для получения уведомлений о событиях на уровне базы данных и контроля всех аспектов конфигурации базы данных, включая размер страниц кэша, параметры отмены обработки и выполнения инструкций.
Экземпляр
При асинхронном выполнении для определения завершения или сбоя операции используются прослушиватели или экземпляр Responder. Операции выполняются не в основном, а в фоновом потоке приложения, поэтому оно будет продолжать работать и взаимодействовать с пользователем даже во время выполнения операций с базой данных. Каждый асинхронный экземпляр SQLConnection выполняет инструкции SQL в собственной цепочке.
При асинхронном режиме выполнения сначала с помощью соответствующего метода вызывается определенная операция, а для определения ее завершения (или сбоя) необходимо зарегистрировать прослушиватель соответствующего события. Каждой операции соответствует событие, которое отправляется при ее успешном завершении. Например, если метод
При синхронном выполнении для определения завершения или сбоя операции не нужно регистрировать прослушиватели событий. Чтобы определить ошибки, заключите инструкции, которые их вызывают, в блоки
Эта функция может иметь любое имя.
Функции элементов уровня класса не подлежат удалению в качестве мусора, вследствие чего можно установить
После успешной регистрации прослушивателя событий невозможно изменить его приоритет путем дополнительных вызовов
Следует учесть, что после регистрации прослушивателя последующие вызовы метода
Невозможно зарегистрировать прослушиватель события только для целевой фазы или для фазы восходящей цепочки. Эти фазы соединены при регистрации, поскольку восходящая цепочка применяется только к предшественникам целевого узла.
Если прослушиватель событий больше не нужен, его можно удалить, вызвав метод
Копирование экземпляра EventDispatcher не приводит к копированию прослушивателей событий, присоединенных к нему. (Если для вновь создаваемого узла требуется прослушиватель событий, его необходимо присоединить после создания узла.) При этом при перемещении экземпляра EventDispatcher присоединенные к нему прослушиватели событий перемещаются вместе с ним.
Если прослушиватель регистрируется для узла в тот момент, когда на нем обрабатывается событие, то в текущей фазе он не запускается, однако может запуститься в следующей фазе потока события, например в фазе восходящей цепочки.
Прослушиватель событий, удаленный из узла во время обработки события на этом узле, будет запускаться текущими операциями. После удаления прослушиватель событий больше не вызывается (если не будет снова зарегистрирован для дальнейшей обработки).
Если в базе данных определены индексы, но метод
При изменении данных таблицы (в результате выполнения операторов
Параметр
Каждый раз при вызове данного метода все ранее созданные статистические данные стираются и повторно создаются для базы данных или таблицы, указанной в параметре
Для удаления статистических данных, созданных с помощью метода
Если параметр имеет значение
Действительным считается ключ шифрования длиной 16 байтов. Базу данных в памяти зашифровать невозможно, поэтому этот параметр должен иметь значение
Если при присоединении зашифрованной базы данных предоставленный ключ шифрования не совпадает с ключом шифрования базы данных, выдается исключение. В синхронном режиме выполнения выдается исключение SQLError. В асинхронном режиме выполнения отправляется событие SQLErrorEvent, а свойство
Параметр
Если база данных уже подключена с использованием заданного имени, вызов метода
Любой оператор SQL можно выполнить применительно к базе данных, которая подключена с помощью метода
Для удаления базы данных, подключенной с помощью метода
Подключенная база данных использует тот же режим выполнения (синхронный или асинхронный), что и главная, в зависимости от метода, с помощью которого была подключена главная база данных
Значение по умолчанию (
По умолчанию каждая инструкция SQL выполняется в рамках своей транзакции, которая завершается после успешного выполнения или сбоя инструкции. При создании транзакции с помощью метода
Для завершения транзакции используется метод
Ступенчатые вызовы метода
Если подключение к базе данных закрывается при открытой транзакции, AIR автоматически выполняет откат транзакции. (Примечание. В AIR 1.1 и в предыдущих версиях при закрытии подключения открытая транзакция автоматически фиксируется.)
В транзакции могут быть как инструкции, выполняемые в одной базе данных, так и инструкции, выполняемые в различных подключенных базах данных.
Если в момент вызова метода
Если во время вызова метода
Промежуточные точки сохранения, выполняющие роль закладок в транзакции, можно создать с помощью метода
Если в транзакции используются точки сохранения, инструкции, отмененные с помощью метода
Операцию
Так как статистика, создаваемая методом
Данная операция не включена в активную транзакцию.
Если подключение базы данных закрыто, метод возвращает
Если задано недопустимое значение, отправляется событие
Если аргумент
Для обращения к загруженной схеме данных используется метод
В асинхронном режиме выполнения событие
Сочетание значений параметров
Если сочетание аргументов
Если база данных пуста (не содержит таблиц, представлений, триггеров или индексов), вызов метода
Этот параметр игнорируется, если параметр
Действительным считается ключ шифрования длиной 16 байтов. Базу данных в памяти зашифровать невозможно, поэтому этот параметр должен иметь значение
Если при открытии зашифрованной базы данных предоставленный ключ шифрования не совпадает с ключом шифрования базы данных, отправляется событие SQLErrorEvent. Свойство
Параметр
Подключив базу данных, используйте экземпляр
Базе данных, присоединенной с помощью метода
Этот параметр игнорируется, если параметр
Действительным считается ключ шифрования длиной 16 байтов. Базу данных в памяти зашифровать невозможно, поэтому этот параметр должен иметь значение
Если при открытии зашифрованной базы данных предоставленный ключ шифрования не совпадает с ключом шифрования базы данных, выдается исключение SQLError. В таком случае свойство
Параметр
Подключив базу данных, используйте экземпляр
Базе данных, присоединенной с помощью метода
Операция повторного шифрования выполняется в собственной транзакции. Если процесс повторного шифрования прерывается, база данных выполняет откат транзакции и ключ шифрования не меняется.
Обратите внимание, что изменения сохраняются в базе данных только после сохранения всей транзакции. Если транзакция запущена с помощью метода
Если код вызывает метод
Если этот метод вызывается без параметров (или со значением
Если задано значение для параметра
Когда точка сохранения снимается или отменяется, она удаляется вместе со всеми последующими точками сохранения. Если код выполняет дополнительные операции SQL после вызова метода
Обратите внимание, что если вся транзакция сохраняется с помощью метода
Если этот метод вызывается без параметров (или со значением
Если задано значение для параметра
Когда точка сохранения снимается или отменяется, она удаляется вместе со всеми последующими точками сохранения. Если код выполняет дополнительные операции SQL после вызова метода
Промежуточные точки сохранения в транзакции можно помечать с помощью метода
Если указанное имя дублирует имя предшествующей точки сохранения, следующий вызов метода
В качестве значения
Если вызывается метод
Обратите внимание, что изменения сохраняются в базе данных только после сохранения всей транзакции. Если транзакция запущена с помощью метода
Точке сохранения можно присвоить имя, задав значение для параметра
Когда точка сохранения снимается или отменяется, она удаляется вместе со всеми последующими точками сохранения. Если код выполняет дополнительные операции SQL после вызова метода
Если свойство
Константы, определенные в классе SQLColumnNameStyle, представляют собой возможные значения данного свойства:
Значение равно нулю, если ни одна база данных не подключена или не выполнено ни одной инструкции
Идентификатор строки для однократного выполнения инструкции SQL
Дополнительные сведения о первичных ключах и созданных идентификаторах строк см. в разделах «
Если свойство
Размер страницы базы данных можно менять (с помощью методов
При закрытии подключения к базе данных это значение сбрасывается в 0. Когда экземпляр SQLConnection не подключен к базе данных, значение равно 0.
Для получения сведений о схеме триггера базы данных используется метод
Как правило, экземпляры SQLTriggerSchema не создаются непосредственно в прикладном коде.
Чтобы связать экземпляр SQLStatement с экземпляром SQLConnection, необходимо задать экземпляр SQLConnection в качестве значения свойства
Полное описание диалекта SQL, поддерживаемого в локальных базах данных SQL, см. в приложении
В асинхронном режиме выполнения методы
Непосредственно в ответ на завершение операции
Если инструкция SQL представляет собой запрос
Если аргумент
Чтобы просмотреть результат выполнения инструкции, например строки, созданные в результате выполнения инструкции
Перед выполнением каждая инструкция должна быть подготовлена (скомпилирована). При первом вызове метода
Если при выполнении инструкции
Если аргумент
Следует заметить, что до удаления с помощью метода
В асинхронном режиме выполнения, если аргумент
Этот метод может быть вызван только во время выполнения оператора. Если инструкция SQL представляет собой запрос
Это свойство имеет значение true, если после вызова метода
По умолчанию каждая строка, возвращаемая инструкцией
Если в свойстве
Любой класс, указанный в этом свойстве, должен иметь конструктор без параметров. Кроме того, в этом классе должно быть определено по одному свойству для каждого столбца, возвращаемого инструкцией
Внутри текста инструкции SQL параметры обозначаются с помощью одного из следующих символов: «?», «:» или «@».
Маркеры «:» и «@» обозначают именованный параметр, а символы, следующие после маркера, обозначают имя параметра.
Например, в следующей инструкции SQL параметр с именем
SELECT FROM employees WHERE firstName = :firstName
Маркер «?» обозначает проиндексированный (нумерованный) параметр. Каждому параметру автоматически назначается индекс в зависимости от последовательности параметров в тексте инструкции. Индексы параметров начинаются с нуля. Иными словами, индекс первого параметра равен 0.
Параметры используются для типизированной подстановки значений, которые неизвестны во время создания инструкции SQL. Использование параметров — это единственный способ обеспечить класс хранения значения, передаваемого в базу данных. Если параметры не используются, все значения преобразуются из своего текстового представления к классу хранения с учетом типов соответствующих столбцов. Дополнительные сведения о классах хранения и соответствии столбцов см. в разделе «Поддержка типов данных» в приложении
Параметры также используются как мера безопасности с целью предотвращения такого метода взлома, как атака путем внедрения кода SQL (SQL-инъекция). При атаке путем внедрения кода SQL пользователь вводит код SQL в доступное ему место (например, в поле ввода данных). Если приложение формирует инструкции SQL, непосредственно добавляя в текст инструкции данные, введенные пользователем, то в базе данных выполнится код SQL, введенный злоумышленником. В следующем примере показано добавление данных, введенных пользователем, в текст инструкции SQL. Этот способ использовать нельзя:
Использование параметров инструкции вместо добавления в его текст пользовательских значений предотвращает атаку путем внедрения кода SQL, потому что значения параметров обрабатываются явным образом как подставляемые значения, а не становятся частью текста инструкции. Ниже приведена рекомендуемая альтернатива предыдущему примеру:
Перед выполнением инструкции должны быть заданы значения всех параметров. Связывание (т. е. объединение с текстом инструкции) значений параметров, заданных в массиве
Чтобы удалить значения всех параметров в свойстве
Текстом может быть любая допустимая конструкция языка SQL. Полное описание диалекта SQL, поддерживаемого в локальных базах данных SQL, см. в приложении
Поддержка в профилях AIR: эта функция поддерживается во всех компьютерных операционных системах, но не поддерживается на мобильных устройствах или в средах AIR для телевизионных устройств. Используйте свойство
Среда выполнения AIR предоставляет локальное зашифрованное хранилище для каждого приложения AIR, установленного на компьютере пользователя. Это позволяет сохранять и извлекать данные, хранимые на жестком диске пользователя в зашифрованном виде, при этом другие пользователи не смогут расшифровать эти данные обычными методами. Отдельное зашифрованное локальное хранилище используется для каждого приложения AIR, а каждое приложение AIR использует такое хранилище для каждой учетной записи пользователя на компьютере.
Используйте локальное зашифрованное хранилище для конфиденциальной информации, такой как имена учетных записей и пароли для веб-служб. Локальное зашифрованное хранилище подходит для информации, которая должна быть защищена от других пользователей. Однако оно не позволяет защитить данные от других процессов, выполняемых в той же учетной записи пользователя. Поэтому локальное зашифрованное хранилище не подходит для защиты секретных данных приложения, таких как ключи шифрования или DRM.
Для установления связи зашифрованного локального хранилища с каждым приложением и пользователем AIR использует интерфейс DPAPI в Windows, KeyChain в Mac OS и KeyRing или KWallet в Linux. В зашифрованном локальном хранилище используется 128-разрядное шифрование AES-CBC.
Информация в зашифрованном хранилище доступна только приложениям AIR в своей изолированной программной среде.
В случае обновления приложения AIR, обновленная версия сохраняет доступ ко всем существующим данным в локальном зашифрованном хранилище, за исключением следующих случаев:
Ограничения локального зашифрованного хранилища
Данные в локальном зашифрованном хранилище защищаются с использованием учетных данных пользователя операционной системы. Никто другой не сможет получить доступ к данным в хранилище, не имя учетных данных этого пользователя. Однако данные не защищены от доступа со стороны приложений, запущенных активным пользователем. Таким образом, данные приложения, которые желательно сохранить в тайне от пользователей (например, ключи лицензирования или DRM), оказываются незащищенными. Локальное зашифрованное хранилище данных не подходит для такой информации. В нем можно хранить только личные данные пользователя, например пароли.
Данные в локальном зашифрованном хранилище могут быть потеряны по многим причинам. Например, пользователь может удалить приложение и зашифрованный файл. Кроме того, в результате обновления может измениться идентификатор издателя. Поэтому локальное зашифрованное хранилище следует рассматривать как личный кэш, а не как постоянное хранилище данных.
Параметр
Если размер сохраняемых данных превышает 10 МБ, работа зашифрованного локального хранилища может быть замедлена.
При удалении приложения AIR программа удаления не удаляет данные из зашифрованного локального хранилища.
Ниже приводятся рекомендации по использованию локального зашифрованного хранилища.
Идентификатором элементов зашифрованного локального приложения является строка. Все элементы хранятся в виде массива байтов.
Данные зашифрованного локального хранилища помещаются во вложенный каталог, который находится внутри пользовательского каталога данных приложения. Путь к вложенному каталогу — Adobe/AIR/ELS/ с идентификатором приложения в конце.
Если элемент с заданным именем отсутствует, метод возвращает
Для получения сведений о схеме индекса базы данных используется метод
Как правило, экземпляры SQLIndexSchema не создаются непосредственно в прикладном коде.
Для получения сведений о схеме таблицы базы данных используется метод
Как правило, экземпляры SQLTableSchema не создаются непосредственно в прикладном коде.
Экземпляр SQLResult для инструкции SQL доступен с помощью метода
Объект SQLResult используется для обращения к строкам данных, возвращаемым инструкцией
Если инструкция возвращает одну или несколько строк, это свойство указывает, все ли строки были возвращены. Если метод
Следует заметить, что из-за того, что во время выполнения количество строк неизвестно, курсор базы данных должен переместиться за последнюю строку до того, как завершится выполнение инструкции. Если при вызове метода
Когда инструкция возвращает одну или несколько строк, это свойство является массивом, содержащим объекты, представляющие строки полученных данных. Каждый объект в массиве имеет свойства, имена которых соответствуют именам столбцов в полученном наборе данных.
Допустим, что выполняется следующая инструкция SQL
Предположим, что таблица
Ситуация усложняется, если инструкция
В результате выполнения этой инструкции каждый объект в массиве
В массиве
Свойство
После выполнения запроса свойство
Если в полученных данных содержатся повторяющиеся имена столбцов, например если инструкция
По умолчанию объекты в массиве
Если инструкция не возвращает данных, это свойство равно
Значение равно 0, если выполненная инструкция не была инструкцией
Уникальный идентификатор строки в таблице, используемый для поиска в базе данных. Это значение часто генерируется базой данных.
Дополнительные сведения об основных клавишах и генерируемых идентификаторах строк см. в разделах «CREATE TABLE» и «Выражения» в приложении
Дополнительные изменения, вызванные триггерами, не учитываются. Свойство
Следует учесть, что если связанной операцией SQL является инструкция