Cтраница 1
Три альтернативных SQL-выражения создаются в момент запуска программы или тогда, когда создается и отображается форма регистрации классов. [1]
Исчерпывающее обсуждение встраивания SQL-выражений содержится в гл. [2]
Рассмотрим составные части этого SQL-выражения. После ключевого слова INTO указывается новая таблица, которая будет создана в результате выполнения оператора SELECT. До выполнения этого кода таблица с этим именем должна отсутствовать в базе. После ключевого слова IN указывается база данных, в которую добавляется новая таблица. В Paradox это должен быть каталог, который уже существует на диске. Сразу же после имени базы данных указывается имя драйвера IISAM, который будет использоваться для экспорта данных. [3]
Каждый из наборов данных обладает полным набором SQL-выражений, обеспечивающих редактирование данных. Когда вы добавляете новый элемент в таблицы подробностей, программа подключает их к записям основной таблицы. [4]
В программу JoinData добавлен компонент ADODataset, основанный на приведенном ранее SQL-выражении. Никаких ошибок не возникнет, так как ADO успешно выполнит обновление БД. Дело в том, что в отличие от BDE в ADO используется более практический подход. В рамках ADO, когда выполняется соединение нескольких таблиц, каждое поле знает, к какой таблице оно принадлежит. Если вы обновляете поле в таблице Products и публикуете изменения в базе, для обновления формируется SQL-выражение UPDATE, которое обновляет значение поля в таблице Products базы данных. Если помимо поля таблицы Products вы изменяете также поле таблицы Suppliers, значит, генерируются два SQL-выражения UPDATE - по одному для каждой таблицы. [5]
О DataSetProvider соединяется с набором данных, извлекает данные из SQLDataSet и генерирует необходимые SQL-выражения, связанные с обновлением данных. О ClientDataSet осуществляет чтение данных провайдера и сохраняет все данные ( если его свойство PacketRecords равно значению - 1) в памяти. Чтобы перВДаТЬ обновления данных в базу данных ( через провайдера), необходимо обратиться к методу Apply Updates этого компонента. [6]
В большинстве случаев несложно подтвердить достоверность с помощью ограничения проверки, поскольку при этом в качестве SQL-выражения можно использовать некоторую функцию базы данных. [7]
В начале данной главы я уже говорил о том, что одной из целей ( и одной из проблем) программирования в среде клиент-сервер является корректное разделение нагрузки между компьютерами Когда вы отправляете SQL-запрос ( в котором с Держится SQL-выражение) с клиентского компьютера на сервер, большую часть Работы, связанной с обработкой данных, выполняет сервер При этом вы должны Использовать выражения select таким образом, чтобы набор данных, передаваемых с клиента на сервер, обладал как можно меньшим размером Чем меньше объем Данных, передаваемых между компьютерами, тем ниже нагрузка на сеть. [8]
Компонент ADODataSet открывает и исполняет значение, хранящееся в свойстве CommandText. Это значение может быть именем таблицы, SQL-выражением, сохраненной процедурой или именем файла. Режим интерпретации этого значения определяется свойством CommandType. Мы хотим указать, что значение свойства CommandText является именем таблицы и что из этой таблицы необходимо получить все столбцы. [9]
Большинство разработчиков знакомы с использованием этого символа в данной роли. Однако, имеется возможность применять различные символы для завершения ваших SQL-выражений. [10]
Несвязанный элемент, применяемый в качестве кнопки, аналогичен производному элементу. Для него используется тип данных отображения Button и исполнйется процедура, а не функция или SQL-выражение. Примером может служить кнопка для выдачи сообщения с последующим исполнением процедуры базы данных. [11]
При добавлении новой строки в SQL-соединение механизм ADO ведет себя подобным же образом. Если вы вставляете строку и добавляете значения только для полей таблицы Products, значит, генерируется только одно SQL-выражение INSERT, которое добавляет новую запись в таблицу Products. Если вы вводите значения для полей обеих таблиц, генерируется два SQL-выражения INSERT - по одному для каждой таблицы. Важен порядок, в котором выполняются эти выражения, так как новый продукт может ссылаться на нового поставщика, поэтому информация о поставщике должна добавляться в таблицу Suppliers в первую очередь. [12]
Тип Min / Max означает, что значение колонки будет проверяться на вхождение в заданный диапазон. В случае выбора типа Valid Value List задается список допустимых значений. Тип User-Defined позволяет задать вручную фрагмент SQL-выражения, соответствующий правилу валидации, который будет использоваться при генерации схемы базы данных. Если выбран тип Min / Max, то закладке General можно задать максимальное и минимальное значение колонки. [13]
При добавлении новой строки в SQL-соединение механизм ADO ведет себя подобным же образом. Если вы вставляете строку и добавляете значения только для полей таблицы Products, значит, генерируется только одно SQL-выражение INSERT, которое добавляет новую запись в таблицу Products. Если вы вводите значения для полей обеих таблиц, генерируется два SQL-выражения INSERT - по одному для каждой таблицы. Важен порядок, в котором выполняются эти выражения, так как новый продукт может ссылаться на нового поставщика, поэтому информация о поставщике должна добавляться в таблицу Suppliers в первую очередь. [14]
В модуле данных для этой группы таблиц используются отношения типа основное / подробности / подробности. Модуль содержит в себе код, который настраивает соединение с активной записью в основной таблице, когда создается новая запись в таблице подробностей. Каждый из наборов данных обладает генерируемым полем ( generator field) для ID, которому соответствуют подходящие SQL-выражения update и insert. Эти выражения генерируются соответствующим редактором компонента. [15]