📄 04.00.04.sqldataprovider
字号:
PropertyName = @PropertyName,
Required = @Required,
ValidationExpression = @ValidationExpression,
ViewOrder = @ViewOrder,
Visible = @Visible,
Length = @Length
WHERE PropertyDefinitionId = @PropertyDefinitionId
GO
/* Add Add Default Property Definitions Stored Procedure */
/**********************************************************/
if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}[{objectQualifier}AddDefaultPropertyDefinitions]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE {databaseOwner}[{objectQualifier}AddDefaultPropertyDefinitions]
GO
CREATE PROCEDURE {databaseOwner}[{objectQualifier}AddDefaultPropertyDefinitions]
@PortalId int
AS
DECLARE @TextDataType as int
SELECT @TextDataType = (SELECT EntryID FROM {objectQualifier}Lists WHERE ListName = 'DataType' AND Value = 'Text')
DECLARE @CountryDataType as int
SELECT @CountryDataType = (SELECT EntryID FROM {objectQualifier}Lists WHERE ListName = 'DataType' AND Value = 'Country')
DECLARE @RegionDataType as int
SELECT @RegionDataType = (SELECT EntryID FROM {objectQualifier}Lists WHERE ListName = 'DataType' AND Value = 'Region')
DECLARE @TimeZoneDataType as int
SELECT @TimeZoneDataType = (SELECT EntryID FROM {objectQualifier}Lists WHERE ListName = 'DataType' AND Value = 'TimeZone')
DECLARE @LocaleDataType as int
SELECT @LocaleDataType = (SELECT EntryID FROM {objectQualifier}Lists WHERE ListName = 'DataType' AND Value = 'Locale')
DECLARE @RichTextDataType as int
SELECT @RichTextDataType = (SELECT EntryID FROM {objectQualifier}Lists WHERE ListName = 'DataType' AND Value = 'RichText')
DECLARE @RC int
--Add Name Properties
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @TextDataType, '', 'Name','Prefix', 0, '', 1, 1, 50
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @TextDataType, '', 'Name','FirstName' ,0, '', 3, 1, 50
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @TextDataType, '', 'Name','MiddleName' ,0, '', 5, 1, 50
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @TextDataType, '', 'Name','LastName' ,0, '', 7, 1, 50
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @TextDataType, '', 'Name','Suffix' ,0, '', 9, 1, 50
--Add Address Properties
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @TextDataType, '', 'Address','Unit' ,0, '', 11, 1, 50
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @TextDataType, '', 'Address','Street' ,0, '', 13, 1, 50
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @TextDataType, '', 'Address','City' ,0, '', 15, 1, 50
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @RegionDataType, '', 'Address','Region' ,0, '', 17, 1, 0
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @CountryDataType, '', 'Address','Country' ,0, '', 19, 1, 0
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @TextDataType, '', 'Address','PostalCode' ,0, '', 21, 1, 50
--Add Contact Info Properties
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @TextDataType, '', 'Contact Info','Telephone' ,0, '', 23, 1, 50
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @TextDataType, '', 'Contact Info','Cell' ,0, '', 25, 1, 50
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @TextDataType, '', 'Contact Info','Fax' ,0, '', 27, 1, 50
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @TextDataType, '', 'Contact Info','Website' ,0, '', 29, 1, 50
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @TextDataType, '', 'Contact Info','IM' ,0, '', 31, 1, 50
--Add Preferences Properties
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @RichTextDataType, '', 'Preferences','Biography' ,0, '', 33, 1, 0
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @TimeZoneDataType, '', 'Preferences','TimeZone' ,0, '', 35, 1, 0
EXECUTE @RC = {databaseOwner}[{objectQualifier}AddPropertyDefinition] @PortalId, -1, @LocaleDataType, '', 'Preferences','PreferredLocale' ,0, '', 37, 1, 0
GO
Grant EXECUTE on {databaseOwner}[{objectQualifier}AddDefaultPropertyDefinitions] to public
GO
/* Update Get Permissions By Tab Stored Procedures */
/***************************************************/
if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}[{objectQualifier}GetPermissionsByTabID]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE {databaseOwner}[{objectQualifier}GetPermissionsByTabID]
GO
CREATE PROCEDURE {databaseOwner}{objectQualifier}GetPermissionsByTabID
@TabID int
AS
SELECT
P.[PermissionID],
P.[PermissionCode],
P.[PermissionKey],
P.[ModuleDefID],
P.[PermissionName]
FROM
{databaseOwner}{objectQualifier}Permission P
WHERE
P.PermissionCode = 'SYSTEM_TAB'
GO
/* Add Get Online User Stored Procedures */
/*****************************************/
if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}[{objectQualifier}GetOnlineUser]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure {databaseOwner}[{objectQualifier}GetOnlineUser]
GO
CREATE PROCEDURE {databaseOwner}[{objectQualifier}GetOnlineUser]
@UserID int
AS
SELECT
{objectQualifier}UsersOnline.UserID,
{objectQualifier}Users.UserName
FROM {objectQualifier}UsersOnline
INNER JOIN {objectQualifier}Users ON {objectQualifier}UsersOnline.UserID = {objectQualifier}Users.UserID
WHERE {objectQualifier}UsersOnline.UserID = @UserID
GO
/* Add Get Online Users Stored Procedures */
/******************************************/
if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}[{objectQualifier}GetOnlineUsers]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure {databaseOwner}[{objectQualifier}GetOnlineUsers]
GO
CREATE PROCEDURE {databaseOwner}[{objectQualifier}GetOnlineUsers]
@PortalID int
AS
SELECT
UO.UserID,
U.Username
FROM {objectQualifier}UsersOnline UO
INNER JOIN {objectQualifier}Users U ON UO.UserID = U.UserID
INNER JOIN {objectQualifier}UserPortals UP ON U.UserID = UP.UserId
WHERE UP.PortalID = @PortalID
GO
/* Add UserProfile Table */
/*************************/
IF NOT EXISTS (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}[{objectQualifier}UserProfile]') and OBJECTPROPERTY(id, N'IsTable') = 1)
BEGIN
CREATE TABLE {databaseOwner}{objectQualifier}UserProfile
(
[ProfileID] int IDENTITY(1,1) NOT NULL,
[UserID] int NOT NULL,
[PropertyDefinitionID] int NOT NULL,
[PropertyValue] nvarchar(3750) NULL,
[PropertyText] ntext NULL,
[Visibility] int NOT NULL DEFAULT 0,
[LastUpdatedDate] datetime NOT NULL
)
ALTER TABLE {databaseOwner}{objectQualifier}UserProfile
ADD CONSTRAINT [PK_{objectQualifier}UserProfile] PRIMARY KEY NONCLUSTERED ([ProfileID])
ALTER TABLE {databaseOwner}{objectQualifier}UserProfile WITH NOCHECK
ADD CONSTRAINT [FK_{objectQualifier}UserProfile_{objectQualifier}Users] FOREIGN KEY([UserID]) REFERENCES {databaseOwner}[{objectQualifier}Users] ([UserID]) ON DELETE CASCADE
ALTER TABLE {databaseOwner}{objectQualifier}UserProfile WITH NOCHECK
ADD CONSTRAINT [FK_{objectQualifier}UserProfile_{objectQualifier}ProfilePropertyDefinition] FOREIGN KEY([PropertyDefinitionID]) REFERENCES {databaseOwner}[{objectQualifier}ProfilePropertyDefinition] ([PropertyDefinitionID]) ON DELETE CASCADE
END
GO
/* Add GetProfilePropertyDefinitionID Function */
/***********************************************/
if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}[{objectQualifier}GetProfilePropertyDefinitionID]') and OBJECTPROPERTY(id, N'IsScalarFunction') = 1)
DROP FUNCTION {databaseOwner}[{objectQualifier}GetProfilePropertyDefinitionID]
GO
CREATE FUNCTION {databaseOwner}[{objectQualifier}GetProfilePropertyDefinitionID]
(
@PortalID int,
@PropertyName nvarchar(50)
)
RETURNS int
AS
BEGIN
DECLARE @DefinitionID int
SELECT @DefinitionID = -1
IF @PropertyName IS NULL
OR LEN(@PropertyName) = 0
RETURN -1
IF @PortalID IS NULL
SET @POrtalID = -1
SET @DefinitionID = (SELECT PropertyDefinitionID
FROM {objectQualifier}ProfilePropertyDefinition
WHERE PortalID = @PortalID
AND PropertyName = @PropertyName
)
RETURN @DefinitionID
END
GO
Grant EXECUTE on {databaseOwner}[{objectQualifier}GetProfilePropertyDefinitionID] to public
GO
/* Add GetProfileElement Function */
/**********************************/
if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}[{objectQualifier}GetProfileElement]') and OBJECTPROPERTY(id, N'IsScalarFunction') = 1)
DROP FUNCTION {databaseOwner}[{objectQualifier}GetProfileElement]
GO
CREATE FUNCTION {databaseOwner}[{objectQualifier}GetProfileElement]
(
@fieldName AS NVARCHAR(100),
@fields AS NVARCHAR(4000),
@values AS NVARCHAR(4000)
)
RETURNS NVARCHAR(4000)
AS
BEGIN
-- If input is invalid, return null.
IF @fieldName IS NULL
OR LEN(@fieldName) = 0
OR @fields IS NULL
OR LEN(@fields) = 0
OR @values IS NULL
OR LEN(@values) = 0
RETURN NULL
-- locate FieldName in Fields
DECLARE @fieldNameToken AS NVARCHAR(20)
DECLARE @fieldNameStart AS INTEGER, @valueStart AS INTEGER, @valueLength AS INTEGER
-- Only handle string type fields (:S:)
SET @fieldNameStart = CHARINDEX(@fieldName + ':S',@Fields,0)
-- If field is not found, return null
IF @fieldNameStart = 0 RETURN NULL
SET @fieldNameStart = @fieldNameStart + LEN(@fieldName) + 3
-- Get the field token which I've defined as the start of the field offset to the end of the length
SET @fieldNameToken =
SUBSTRING(@Fields,@fieldNameStart,LEN(@Fields)-@fieldNameStart)
-- Get the values for the offset and length
SET @valueStart = {databaseOwner}{objectQualifier}getelement(1,@fieldNameToken,':')
SET @valueLength = {databaseOwner}{objectQualifier}getelement(2,@fieldNameToken,':')
-- Check for sane values, 0 length means the profile item was stored, just no data
IF @valueLength = 0 RETURN ''
-- Return the string
RETURN SUBSTRING(@values, @valueStart+1, @valueLength)
END
GO
Grant EXECUTE on {databaseOwner}[{objectQualifier}GetProfileElement] to public
GO
/* Add GetElement Function */
/***************************/
if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}[{objectQualifier}GetElement]') and OBJECTPROPERTY(id, N'IsScalarFunction') = 1)
DROP FUNCTION {databaseOwner}[{objectQualifier}GetElement]
GO
CREATE FUNCTION {databaseOwner}[{objectQualifier}GetElement]
(
@ord AS INT,
@str AS VARCHAR(8000),
@delim AS VARCHAR(1)
)
RETURNS INT
AS
BEGIN
-- If input is invalid, return null.
IF @str IS NULL
OR LEN(@str) = 0
OR @ord IS NULL
OR @ord < 1
-- @ord > [is the] expression that calculates the number of elements.
OR @ord > LEN(@str) - LEN(REPLACE(@str, @delim, '')) + 1
RETURN NULL
DECLARE @pos AS INT, @curord AS INT
SELECT @pos = 1, @curord = 1
-- Find next element's start position and increment index.
WHILE @curord < @ord
SELECT
@pos = CHARINDEX(@delim, @str, @pos) + 1,
@curord = @curord + 1
RETURN CAST(SUBSTRING(@str, @pos, CHARINDEX(@delim, @str + @delim, @pos) - @pos) AS INT)
END
GO
Grant EXECUTE on {databaseOwner}[{objectQualifier}GetElement] to public
GO
/* Add GetUserProfile Procedure */
/********************************/
if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}[{objectQualifier}GetUserProfile]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure {databaseOwner}[{objectQualifier}GetUserProfile]
GO
CREATE procedure {databaseOwner}[{objectQualifier}GetUserProfile]
@UserId int
AS
SELECT
ProfileID,
UserID,
PropertyDefinitionID,
'PropertyValue' = case when (PropertyValue Is Null) then PropertyText else PropertyValue end,
Visibility,
LastUpdatedDate
FROM {objectQualifier}UserProfile
WHERE UserId = @UserId
GO
/* Add UpdateUserProfileProperty Procedure */
/*******************************************/
if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}[{objectQualifier}UpdateUserProfileProperty]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure {databaseOwner}[{objectQualifier}UpdateUserProfileProperty]
GO
CREATE PROCEDURE {databaseOwner}[{objectQualifier}UpdateUserProfileProperty]
@ProfileID int,
@UserID int,
@PropertyDefinitionID int,
@PropertyValue ntext,
@Visibility int,
@LastUpdatedDate datetime
AS
IF @ProfileID IS NULL OR @ProfileID = -1
-- Try the UserID/PropertyDefinitionID to see if the Profile property exists
SELECT @ProfileID = ProfileID
FROM {objectQualifier}UserProfile
WHERE UserID = @UserID AND PropertyDefinitionID = @PropertyDefinitionID
IF @ProfileID IS NOT NULL
-- Update Property
BEGIN
UPDATE {objectQualifier}UserProfile
SET PropertyValue = case when (DATALENGTH(@PropertyValue) > 7500) then NULL else @PropertyValue end,
PropertyText = case when (DATALENGTH(@PropertyValue) > 7500) then @PropertyValue else NULL end,
Visibility = @Visibility,
LastUpdatedDate = @LastUpdatedDate
WHERE ProfileID = @ProfileID
SELECT @ProfileID
END
ELSE
-- Insert New Property
BEGIN
INSERT INTO {objectQualifier}UserProfile (
UserID,
PropertyDefinitionID,
PropertyValue,
PropertyText,
Visibility,
LastUpdatedDate
)
VALUES (
@UserID,
@PropertyDefinitionID,
case when (DATALENGTH(@PropertyValue) > 7500) then NULL else @PropertyValue end,
case when (DATALENGTH(@PropertyValue) > 7500) then @PropertyValue else NULL end,
@Visibility,
@LastUpdatedDate
)
SELECT SCOPE_IDENTITY()
END
GO
/* Update AddModule Procedure */
/******************************/
if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}[{objectQualifier}AddModule]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure {databaseOwner}{objectQualifier}AddModule
GO
CREATE PROCEDURE {databaseOwner}{objectQualifier}AddModule
@PortalId int,
@ModuleDefId int,
@ModuleTitle nvarchar(256),
@AllTabs bit,
@Header ntext,
@Footer ntext,
@StartDate datetime,
@EndDate datetime,
@InheritViewPermissions bit,
@IsDeleted bit
AS
INSERT INTO {objectQualifier}Modules (
PortalId,
ModuleDefId,
ModuleTitle,
AllTabs,
Header,
Footer,
StartDate,
EndDate,
InheritViewPermissions,
IsDeleted
)
values (
@PortalId,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -