Difference between revisions of "RU/kb/00000354"

From Wiki
Jump to navigationJump to search
m (поправил подпись)
(мелкие уточнения и стилистические поправки)
Line 21: Line 21:
 
Между DML описанием таблицы и настройками элементов формы {{OOo}} существует следующая связь<ref>Проверено на встроенной HSQLDB</ref>:
 
Между DML описанием таблицы и настройками элементов формы {{OOo}} существует следующая связь<ref>Проверено на встроенной HSQLDB</ref>:
  
* Если в таблице не указано NOT NULL, то в форме настройки игнорируются. Сохранять NULL-значения можно свободно.
+
* Если в DML '''не''' указано NOT NULL, то в форме настройки игнорируются. Сохранять NULL-значения можно свободно.
  
* Если NOT NULL указан, то при "требуется ввод данных - '''да'''" и попытках записать пустое значение выводится локализованное предупреждение ООо. Т.е. проверка идет на стороне клиента.
+
* Если в DML указано NOT NULL, то при "требуется ввод данных - '''да'''" и попытках записать пустое значение выводится локализованное предупреждение ООо. Т.е. проверка идет на стороне клиента.
  
* Если NOT NULL указан, то при "требуется ввод данных - '''нет'''" и попытках записать пустое значение выводится ошибка SQL-движка. Т.е. проверка идет на стороне сервера.
+
* Если в DML указано NOT NULL, то при "требуется ввод данных - '''нет'''" и попытках записать пустое значение выводится ошибка SQL-движка. Т.е. проверка идет на стороне сервера.
 
<section end=answer/>
 
<section end=answer/>
  

Revision as of 19:52, 4 July 2010

Base. Формы


Template:RU/documentation/needsrework


В реляционных базах данных (RDBMS) поддерживается контроль целостности данных на уровне описания структуры таблиц (DML). В том числе, можно указать, какие поля не должны содержать неопределённые (NULL) значения[1]. Проверка этих условий осуществляется средствами самой RDBMS и не зависит от способа добавления/изменения данных (через форму, командную строку или файл сценария).

Однако, в ряде случаев, лучше проводить дополнительную проверку на стороне клиента, до отправки запроса к SQL-серверу.[2] [3]


В формах OpenOffice.org у многих элементов управления (текстовые поля, поля форматированного ввода и других) в Свойствах элемента на закладке Данные есть пара свойств:

  • "пустая строка - NULL" да/нет,
  • "требуется ввод данных" да/нет.

Если первое свойство выставлено в значение "да", то активируется второе.

Между DML описанием таблицы и настройками элементов формы OpenOffice.org существует следующая связь[4]:

  • Если в DML не указано NOT NULL, то в форме настройки игнорируются. Сохранять NULL-значения можно свободно.
  • Если в DML указано NOT NULL, то при "требуется ввод данных - да" и попытках записать пустое значение выводится локализованное предупреждение ООо. Т.е. проверка идет на стороне клиента.
  • Если в DML указано NOT NULL, то при "требуется ввод данных - нет" и попытках записать пустое значение выводится ошибка SQL-движка. Т.е. проверка идет на стороне сервера.


Индекс: Base


Template:RU/documentation/signyear


Template:KbBaseBottom

  1. Не следует путать неопределённое значение (NULL) и такие как пустая строка (""), ЛОЖЬ (FALSE) или ноль (0)
  2. Хотя по умолчанию, данные и формы для доступа к ним хранятся в одном файле odb, всё равно имеет место клиент-серверная архитектура. Запросы, Формы и Отчёты - это клиентская сторона (интерфейс), которая посредством SQL-запросов общается с HSQLDB-сервером. А он уже осуществляет все низкоуровневые операции чтения/записи в двоичные файлы данных.
  3. Проверка на стороне клиента добавляет некоторые возможности, но не заменяет корректное DML-описание таблиц!
  4. Проверено на встроенной HSQLDB