{ **** UBPFD *********** by delphibase.endimus.com ****
>> Идея стандартизации элементов клиента базы данных.
Компонент доступа к данным,потомок TADOStoredProc.
Предназначен для написания клиента для MS SQL Server 2000 (можно использовать и
для более ранних версий, но придется поработать над шаблоном хранимой
процедуры).
Позволяет управлять операциями добавления, редактирования и
удаления (и некоторыми другими)на клиенте со стороны сервера однообразно для
всех данных. Тем самым достигается некоторая стандартизация клиента и при
изменении серверной части не придется изменять клиента(конечно же в разумных
пределах).
Для большей красоты не помешает создать некоторые другие прибамбасы, например,
форму, исходную для всех форм проекта.
Но это уже не относится к данному разделу.
Зависимости: Windows, Messages, SysUtils, Classes, DB, ADODB
Автор: Пенов Сергей, spenov@narod.ru, ICQ:122597033, Москва
Copyright: Пенов Сергей
Дата: 07 мая 2002 г.
***************************************************** }
//Шаблон хранимой процедуры
{
CREATE PROCEDURE [upTemplateProcedure]
@KeyValue INT = NULL — требуется для обновления измененной записи в клиенте.
AS
– Data (Требуемая информация)
SELECT ColumnList
FROM TheTable
WHERE @KeyValue IS NULL OR TheKey=@KeyValue — возвращаем либо все(операция
открытия), либо конкретную запись (операция обновления)
IF @KeyValue IS NULL BEGIN — если операция открытия, то возвращаем необходимую
дополнительную информацию для настройки клиента
— Properties — динамические свойства TADOStoredProc, список формируется
таким образом. В большинстве случаев изменять его не приходится.
SELECT ‘Property’='Unique Table’ , ‘Value’='TheTable’ UNION
SELECT ‘Property’='Resync Command’ , ‘Value’='EXEC upTemplateProcedure ?’ –
!!! команда обновления измененной записи !!!
— Table Operations
— Здесь формируется набор данных, возвращающий какие операции может
совершать текущий пользователь с этими данными. Это, естественно, простейший
пример и возможно под конкретную ситуацию его надо будет изменить (запрос)
SELECT DISTINCT PRIVILEGE_TYPE AS [Operation], 1 AS [Value] — 1 - можно, 0
(или нет записи) - нельзя. Operation = INSERT,UPDATE,DELETE
FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
WHERE TABLE_NAME = ‘TheTable’
— Columns Operations — возможность редактирования столбцов пользователем
SELECT DISTINCT COLUMN_NAME AS [Column], 0 AS [ReadOnly] 0 - может
редактировать, 1 ( или нет записи) - не может.
FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES
WHERE TABLE_NAME = ‘TheTable’
AND PRIVILEGE_TYPE = ‘UPDATE’
— Далее можно добавлять свои дополнительные данные для более детальной
настройки клиета. В клиенте к ним доступ через свойство
TADOApostrofStoredProc .Recordsets.
END
}
Эта запись была опубликована 14.12.2007в 21:00. В рубриках: Базы данных. Вы можете следить за ответами к этой записи через RSS 2.0. Комментарии пока закрыты, но Вы можете оставить трекбек со своего сайта.