type TExcelColor = (xc0,xc1,xc2,xc3,xc4,xc5,xc6,xc7,
xcBlack,xcWhite,xcRed,xcBrightGreen,xcBlue,xcYellow,xcPink,xcTurquoise,
xcDarkRed,xcGreen,xcDarkBlue,xcBrownGreen,xcViolet,xcBlueGreen,xcGray25,xcGray50,
xc24,xc25,xc26,xc27,xc28,xc29,xc30,xc31,
xc32,xc33,xc34,xc35,xc36,xc37,xc38,xc39,
xcSky,xcPaleTurquois,xcPaleGreen,xcLightYellow,xcPaleSky,xcRose,xcLilac,xcLightBrown,
xcDarkSky,xcDarkTurquois,xcGrass,xcGold,xcLightOrange,xcOrange,xcDarkBlueGray,xcGray40,
xcDarkGreenGray,xcEmerald,xcDarkGreen,xcOlive,xcBrown,xcCherry,xcIndigo,xcGray80,
xcAutomatic);
const TDefaultExcelColorPalette: array[0..64] of integer = (
$000000, $000000, $000000, $000000, $000000, $000000, $000000, $000000,
$000000, $FFFFFF, $0000FF, $00FF00, $FF0000, $00FFFF, $FF00FF, $FFFF00,
$000080, $008000, $800000, $008080, $800080, $808000, $C0C0C0, $808080,
$FF9999, $663399, $CCFFFF, $FFFFCC, $660066, $8080FF, $CC6600, $FFCCCC,
$800000, $FF00FF, $00FFFF, $FFFF00, $800080, $000080, $808000, $FF0000,
$FFCC00, $FFFFCC, $CCFFCC, $99FFFF, $FFCC99, $CC99FF, $FF99CC, $99CCFF,
$FF6633, $CCCC33, $00CC99, $00CCFF, $0099FF, $0066FF, $996666, $969696,
$663300, $669933, $003300, $003333, $003399, $663399, $993333, $333333,
$FFFFFF);
логично предположить, что это и есть эти цвета.uses
. PIVOT
. Делал недавно.DECLARE @UserInfo TABLE ( user_id INT, meta_key VARCHAR(100), meta_value VARCHAR(100) )
INSERT @UserInfo VALUES ( 1, 'gender', 'male' ),
( 1, 'age', '21' ),
( 2, 'gender', 'female' ),
( 2, 'age', '23' ),
( 3, 'gender', 'genderqueer' ),
( 4, 'age', '25' ),
( 4, 'location', 'toster' ),
( 5, 'gender', 'male' ),
( 5, 'age', '27' ),
( 6, 'gender', 'female' ),
( 6, 'age', '29' )
SELECT user_id, gender, age, location
FROM ( SELECT * FROM @UserInfo ) AS UI
PIVOT ( MAX( meta_value ) FOR meta_key IN (gender, age, location )) AS PT
WHERE user_id BETWEEN 2 AND 5
ORDER BY user_id
user_id gender age location
2 female 23 NULL
3 genderqueer NULL NULL
4 NULL 25 toster
5 male 27 NULL
не могу отсоединить БД,Остановите службу сервера и файлы освободятся.
SELECT main_id AS [Код], 0 AS [Код.Код], 0 AS [Код.Код.Код], name_site AS [Текст]
FROM MainTabMatrix
WHERE name_site = 'Начальник РЭС'
UNION
SELECT MainTabMatrix.main_id, id_taks, 0, NameTask AS [Текст]
FROM MainTabMatrix
JOIN TasksM ON MainTabMatrix.main_id = TasksM.main_id
WHERE name_site = 'Начальник РЭС'
UNION
SELECT MainTabMatrix.main_id, TasksM.id_taks, duties_id, NameDuties AS [Текст]
FROM MainTabMatrix
JOIN TasksM ON MainTabMatrix.main_id = TasksM.main_id
JOIN Duties ON TasksM.id_task = Duties.id_task
WHERE name_site = 'Начальник РЭС'
ORDER BY 1, 2, 3
А если ПО уже давно нет, можно просто тот inf файл удалить?Нужно сами драйвера удалять с "удалением файлов". Если в диспетчере не найдёте, то
set devmgr_show_nonpresent_devices=1
cd %SystemRoot%\System32
start devmgmt.msc
(Tag NVARCHAR(60), [StartTime] datetime, [EndTime] datetime)
В триггере: если метка более 2-х минут от предыдущей (определяется легко: последняя - 1), то добавляем строку и заносим в StartTime
, если нет — то в EndTime
.CREATE PROCEDURE DowntimeCalculatePeriod
AS
DECLARE @P TABLE ( ID INT IDENTITY,
[Tag] NVARCHAR(60), [StartTime] DATETIME, [EndTime] DATETIME)
DECLARE @DG1 NVARCHAR(60), @DT1 DATETIME
DECLARE @DG0 NVARCHAR(60) = CHAR(0x19), @DT0 DATETIME = '2020'
DECLARE @ID INT = -1
DECLARE DowntimeCalc CURSOR FOR
SELECT Tag, [DateTime] FROM Downtime ORDER BY 1, 2
OPEN DowntimeCalc
FETCH NEXT FROM DowntimeCalc INTO @DG1, @DT1
WHILE @@FETCH_STATUS = 0 BEGIN
IF ( @DG1 <> @DG0 ) OR (( @DG1 = @DG0 ) AND ( DATEDIFF( ss, @DT0, @DT1) > 90 )) BEGIN
INSERT INTO @P ([Tag], [StartTime]) VALUES ( @DG1, @DT1 )
SET @ID = SCOPE_IDENTITY()
END ELSE BEGIN
UPDATE @P SET [EndTime] = @DT1 WHERE ID = @ID
END
SET @DG0 = @DG1; SET @DT0 = @DT1
FETCH NEXT FROM DowntimeCalc INTO @DG1, @DT1
END
CLOSE DowntimeCalc
DEALLOCATE DowntimeCalc
SELECT [Tag], [StartTime], [EndTime] FROM @P
WHERE NOT [EndTime] IS NULL
ORDER BY 1, 2
GO
--
EXECUTE DowntimeCalculatePeriod