курсач / Наволоцкий_1302_v2
.pdf/* =============================================
3. ЗАПОЛНЕНИЕ КОМПОНЕНТОВ (Схема Stock)
ЧАСТЬ А: Детальное добавление через переменные
============================================= */ PRINT 'Добавление базовых компонентов... ' + CONVERT(VARCHAR(30), GETDATE(), 120);
GO
DECLARE @ManufID int, @CatID int, @PackID int, @CompID int, @SimID int;
-- --- 1. LM358 ---
SELECT @ManufID = ManufacturerID FROM [Ref].[Manufacturers] WHERE Name = N'Texas Instruments';
SELECT @CatID = CategoryID FROM [Ref].[Categories] WHERE Name = N'Операционные усилители';
SELECT @PackID = PackageID FROM [Ref].[PackageTypes] WHERE
Name = N'DIP-8';
INSERT INTO [Stock].[Components] (PartNumber,
ManufacturerID, CategoryID, PackageID, Description,
IsActive)
VALUES (N'LM358P', @ManufID, @CatID, @PackID,
N'Двухканальный ОУ', 1);
SET @CompID = SCOPE_IDENTITY();
INSERT INTO [Stock].[ComponentParams] (ComponentID,
ParamName, ParamValue, Unit) VALUES
(@CompID, N'Channels', N'2', N'pcs'),
71
(@CompID, N'Vcc Max', N'32', N'V');
SELECT @SimID = SimTypeID FROM [Ref].[SimulationTypes] WHERE
Name = N'SPICE';
INSERT INTO [Stock].[ComponentModels] (ComponentID,
SimTypeID, ModelCode) VALUES
(@CompID, @SimID, N'.SUBCKT LM358 ... end');
-- --- 2. NE555 ---
SELECT @PackID = PackageID FROM [Ref].[PackageTypes] WHERE
Name = N'SOIC-8';
INSERT INTO [Stock].[Components] (PartNumber,
ManufacturerID, CategoryID, PackageID, Description,
IsActive)
VALUES (N'NE555D', @ManufID, @CatID, @PackID, N'Легендарный таймер', 1);
SET @CompID = SCOPE_IDENTITY();
INSERT INTO [Stock].[ComponentParams] (ComponentID,
ParamName, ParamValue, Unit) VALUES
(@CompID, N'Frequency', N'500', N'kHz');
-- --- 3. Resistor ---
SELECT @ManufID = ManufacturerID FROM [Ref].[Manufacturers]
WHERE Name = N'Vishay';
72
SELECT @CatID = CategoryID FROM [Ref].[Categories] WHERE
Name = N'Резисторы';
SELECT @PackID = PackageID FROM [Ref].[PackageTypes] WHERE
Name = N'0603';
INSERT INTO [Stock].[Components] (PartNumber,
ManufacturerID, CategoryID, PackageID, Description,
IsActive)
VALUES (N'CRCW0603', @ManufID, @CatID, @PackID, N'Резистор
10кОм 1%', 1);
SET @CompID = SCOPE_IDENTITY();
INSERT INTO [Stock].[ComponentParams] (ComponentID,
ParamName, ParamValue, Unit) VALUES
(@CompID, N'Resistance', N'10', N'kOhm');
-- --- 4. ATmega328 ---
SELECT @ManufID = ManufacturerID FROM [Ref].[Manufacturers] WHERE Name = N'Microchip Technology';
SELECT @CatID = CategoryID FROM [Ref].[Categories] WHERE
Name = N'Микроконтроллеры';
SELECT @PackID = PackageID FROM [Ref].[PackageTypes] WHERE
Name = N'TQFP-32';
INSERT INTO [Stock].[Components] (PartNumber,
ManufacturerID, CategoryID, PackageID, Description,
IsActive)
73
VALUES (N'ATmega328P-AU', @ManufID, @CatID, @PackID,
N'Микроконтроллер AVR 8-bit', 1);
SET @CompID = SCOPE_IDENTITY();
INSERT INTO [Stock].[ComponentParams] (ComponentID,
ParamName, ParamValue, Unit) VALUES
(@CompID, N'Flash', N'32', N'KB'),
(@CompID, N'Clock', N'20', N'MHz');
SELECT @SimID = SimTypeID FROM [Ref].[SimulationTypes] WHERE
Name = N'IBIS';
INSERT INTO [Stock].[ComponentModels] (ComponentID,
SimTypeID, FilePath) VALUES
(@CompID, @SimID, N'C:\Libs\atmega328.ibs');
GO
/* =============================================
ЧАСТЬ Б: МАССОВАЯ ВСТАВКА (BULK INSERT)
Для наполнения базы "объемом"
============================================= */ PRINT 'Добавление расширенного набора данных... ' + CONVERT(VARCHAR(30), GETDATE(), 120);
GO
INSERT INTO [Stock].[Components] (PartNumber,
ManufacturerID, CategoryID, PackageID, Description,
IsActive)
VALUES
-- --- Микроконтроллеры ---
74
(N'STM32F103C8T6',
(SELECT ManufacturerID FROM [Ref].[Manufacturers] WHERE
Name = 'STMicroelectronics'),
(SELECT CategoryID FROM [Ref].[Categories] WHERE Name = 'Микроконтроллеры'),
(SELECT PackageID FROM [Ref].[PackageTypes] WHERE Name = 'LQFP-48'),
N'Популярный ARM Cortex-M3 MCU', 1),
(N'STM32F407VGT6',
(SELECT ManufacturerID FROM [Ref].[Manufacturers] WHERE
Name = 'STMicroelectronics'),
(SELECT CategoryID FROM [Ref].[Categories] WHERE Name = 'Микроконтроллеры'),
(SELECT PackageID FROM [Ref].[PackageTypes] WHERE Name = 'LQFP-48'),
N'Высокопроизводительный DSP MCU', 1),
(N'LPC1768',
(SELECT ManufacturerID FROM [Ref].[Manufacturers] WHERE
Name = 'NXP Semiconductors'),
(SELECT CategoryID FROM [Ref].[Categories] WHERE Name = 'Микроконтроллеры'),
(SELECT PackageID FROM [Ref].[PackageTypes] WHERE Name = 'LQFP-48'),
N'Cortex-M3 100MHz', 0),
-- --- Операционные усилители ---
(N'AD8605ARTZ',
75
(SELECT ManufacturerID FROM [Ref].[Manufacturers] WHERE
Name = 'Analog Devices'),
(SELECT CategoryID FROM [Ref].[Categories] WHERE Name = 'Операционные усилители'),
(SELECT PackageID FROM [Ref].[PackageTypes] WHERE Name = 'SOT-23'),
N'Precision Low Noise OpAmp', 1),
(N'OP07CP',
(SELECT ManufacturerID FROM [Ref].[Manufacturers] WHERE
Name = 'Texas Instruments'),
(SELECT CategoryID FROM [Ref].[Categories] WHERE Name = 'Операционные усилители'),
(SELECT PackageID FROM [Ref].[PackageTypes] WHERE Name = 'DIP-8'),
N'Ultra-Low Offset Voltage', 1),
-- --- Транзисторы ---
(N'BC847',
(SELECT ManufacturerID FROM [Ref].[Manufacturers] WHERE
Name = 'NXP Semiconductors'),
(SELECT CategoryID FROM [Ref].[Categories] WHERE Name = 'Транзисторы'),
(SELECT PackageID FROM [Ref].[PackageTypes] WHERE Name = 'SOT-23'),
N'NPN General Purpose', 1),
(N'2N7002',
76
(SELECT ManufacturerID FROM [Ref].[Manufacturers] WHERE
Name = 'Vishay'),
(SELECT CategoryID FROM [Ref].[Categories] WHERE Name = 'Транзисторы'),
(SELECT PackageID FROM [Ref].[PackageTypes] WHERE Name = 'SOT-23'),
N'N-Channel MOSFET 60V', 1),
(N'IRFZ44N',
(SELECT ManufacturerID FROM [Ref].[Manufacturers] WHERE
Name = 'Vishay'),
(SELECT CategoryID FROM [Ref].[Categories] WHERE Name = 'Транзисторы'),
(SELECT PackageID FROM [Ref].[PackageTypes] WHERE Name = 'TO-220'),
N'Power MOSFET 55V 49A', 1),
-- --- Конденсаторы ---
(N'GRM188R61A106K',
(SELECT ManufacturerID FROM [Ref].[Manufacturers] WHERE
Name = 'Murata'),
(SELECT CategoryID FROM [Ref].[Categories] WHERE Name = 'Конденсаторы'),
(SELECT PackageID FROM [Ref].[PackageTypes] WHERE Name = '0603'),
N'Ceramic Cap 10uF 10V', 1),
(N'CC0805KRX7R9BB104',
77
(SELECT ManufacturerID FROM [Ref].[Manufacturers] WHERE
Name = 'Vishay'),
(SELECT CategoryID FROM [Ref].[Categories] WHERE Name = 'Конденсаторы'),
(SELECT PackageID FROM [Ref].[PackageTypes] WHERE Name = '0805'),
N'Ceramic Cap 100nF 50V', 1),
-- --- Диоды ---
(N'1N4148W',
(SELECT ManufacturerID FROM [Ref].[Manufacturers] WHERE
Name = 'Vishay'),
(SELECT CategoryID FROM [Ref].[Categories] WHERE Name = 'Диоды'),
(SELECT PackageID FROM [Ref].[PackageTypes] WHERE Name = 'SOD-123'),
N'Switching Diode', 1),
(N'M7',
(SELECT ManufacturerID FROM [Ref].[Manufacturers] WHERE
Name = 'Microchip Technology'),
(SELECT CategoryID FROM [Ref].[Categories] WHERE Name = 'Диоды'),
(SELECT PackageID FROM [Ref].[PackageTypes] WHERE Name = 'SMA'),
N'SMD версия 1N4007 1000V', 1),
-- --- Стабилизаторы ---
(N'LM7805',
78
(SELECT ManufacturerID FROM [Ref].[Manufacturers] WHERE
Name = 'STMicroelectronics'),
(SELECT CategoryID FROM [Ref].[Categories] WHERE Name = 'Стабилизаторы'),
(SELECT PackageID FROM [Ref].[PackageTypes] WHERE Name = 'TO-220'),
N'Linear Regulator 5V 1A', 1),
(N'AMS1117-3.3',
(SELECT ManufacturerID FROM [Ref].[Manufacturers] WHERE
Name = 'Analog Devices'),
(SELECT CategoryID FROM [Ref].[Categories] WHERE Name = 'Стабилизаторы'),
(SELECT PackageID FROM [Ref].[PackageTypes] WHERE Name = 'SOT-223'),
N'LDO 3.3V 800mA', 1);
GO
/* =============================================
ЧАСТЬ В: ПАРАМЕТРЫ ДЛЯ МАССОВЫХ ДАННЫХ
============================================= */ INSERT INTO [Stock].[ComponentParams] (ComponentID, ParamName, ParamValue, Unit)
SELECT ComponentID, 'Flash', '64', 'KB' FROM
[Stock].[Components] WHERE PartNumber = 'STM32F103C8T6';
INSERT INTO [Stock].[ComponentParams] (ComponentID,
ParamName, ParamValue, Unit)
79
SELECT ComponentID, 'Core', 'Cortex-M3', '' FROM
[Stock].[Components] WHERE PartNumber = 'STM32F103C8T6';
INSERT INTO [Stock].[ComponentParams] (ComponentID,
ParamName, ParamValue, Unit)
SELECT ComponentID, 'Capacitance', '10', 'uF' FROM
[Stock].[Components] WHERE PartNumber = 'GRM188R61A106K';
INSERT INTO [Stock].[ComponentParams] (ComponentID,
ParamName, ParamValue, Unit)
SELECT ComponentID, 'Vds', '60', 'V' FROM
[Stock].[Components] WHERE PartNumber = '2N7002';
INSERT INTO [Stock].[ComponentParams] (ComponentID,
ParamName, ParamValue, Unit)
SELECT ComponentID, 'Output', '5', 'V' FROM
[Stock].[Components] WHERE PartNumber = 'LM7805';
GO
PRINT '=========================================================== ==';
PRINT 'Скрипт 02 выполнен успешно. Данные загружены.';
PRINT 'Время завершения: ' + CONVERT(VARCHAR(30), GETDATE(), 120);
PRINT '=========================================================== ==';
GO
80
