6. SQL запросы
Для базы данных «График учета рабочего времени на шахте им. Т. Кузембаева в цехе «Автоматика» » выполнены следующие запросы:
· Подсчет количества записей в таблице
Function SQL_CountRows(table:string;Connection:TADOConnection):integer;
var
str:_Recordset;
request:string;
begin
request := 'SELECT COUNT(ID) FROM ' + table;
STR := Connection.Execute(request);
result := integer(str.Fields.Item[0].Value);
end;
где table – передаваемый в функцию параметр – название таблицы;
· Получение значений атрибутов из таблицы «Отпуски», для заполнения массива, хранящего эти значения для последующих вычислений.
request := 'SELECT LinkWoker, DateBegin, Length FROM ОТПУСКИ';
STR := ADOConnection1.Execute(request);
· Получение значений атрибутов из таблицы «Рабочие», для заполнения массива, хранящего эти значения для последующих вычислений
request := 'SELECT WokerName, LinkStatus, TabNumber FROM РАБОЧИЕ';
STR := ADOConnection1.Execute(request);
· Пометка выходных дней в массиве дней месяца из таблицы, в которой хранятся данные о выходных днях «Выходные».
with sql_CreateQuery(ADOConnection1) do begin
SQL.Text := 'SELECT DateCelebrate FROM Выходные WHERE DateCelebrate BETWEEN :Date1 and :Date2';
with Parameters do begin
ParseSQL(SQL.Text, true);
ParamValues['Date1'] := Date1;
ParamValues['Date2'] := Date2;
end;
Open;
while not(EOF) do begin
MonthInfo[DayOfTheMonth(TDateTime(FieldValues['DateCelebrate']))] := DayCelebrate;
next;
end;
Close;
Free;
end;
· Сохранение названия сохраненного графика, даты сохранения в таблицу «Сохраненные_графики».
procedure SaveToSavedGraphic(NameBD:string; DateOfSave:TDateTime; MonthNum, YearNum:integer);
begin
with sql_CreateQuery(ADOConnection1) do begin
SQL.Text := 'INSERT INTO Сохраненные_графики (NameGraphic, DateOfSave, LinkMonthNum, YearNum) VALUES(:p1, :p2, :p3, :p4)';
with parameters do begin
ParseSQL(SQL.Text, true);
ParamValues['p1'] := NameBD;
ParamValues['p2'] := DateOfSave;
ParamValues['p3'] := MonthNum;
ParamValues['p4'] := YearNum;
end;
ExecSQL();
Close;
Free;
end;
end;
· Процедура сохранения самого графика в таблицу «Графики», с указанием ID сохранения в таблице «Сохраненные_графики».
procedure SaveToGraphic(IDNum, LinkWoker, LinkTypeOfDay:integer; DateOfCell:TDateTime);
begin
with sql_CreateQuery(ADOConnection1) do begin
SQL.Text := 'INSERT INTO Графики (LinkSaveId, LinkWoker, LinkTypeOfDay, DateOfCell) VALUES(:p1, :p2, :p3, :p4)';
with parameters do begin
ParseSQL(SQL.Text, true);
ParamValues['p1'] := IDNum;
ParamValues['p2'] := LinkWoker + 1;
ParamValues['p3'] := LinkTypeOfDay;
ParamValues['p4'] := DateOfCell;
end;
ExecSQL();
Close;
Free;
end;
· Получение ID последней добавленной в таблицу строки.
function GetLastID(conn:TADOConnection):integer;
begin
result := 0;
with sql_CreateQuery(conn) do begin
SQL.Text := 'SELECT @@IDENTITY';
Open();
if Not (eof) then begin
result := Fields.Fields[0].Value;
end;
Close();
Free;
end;
end;
request := 'CREATE TABLE Профессия ' + '( ' +
ID IDENTITY (1, 1) CONSTRAINT PK_Profession_ID PRIMARY KEY, '+
nameProfession CHAR(255) NOT NULL UNIQUE '+ ')';
Conn.Execute(request);
request := 'CREATE TABLE Статус ' + '( ' +
' ID IDENTITY (1, 1) CONSTRAINT PK_Profession_ID PRIMARY KEY, ' +
nameStatus CHAR(255) NOT NULL UNIQUE '+ ')';
Conn.Execute(request);
request := 'CREATE TABLE Рабочие ' +'( ' +
' ID IDENTITY (1, 1) CONSTRAINT PK_Woker_ID PRIMARY KEY, ' +
' WokerName CHAR(128) NOT NULL , ' +
' TabNumber INTEGER , ' +
' LinkProfession INTEGER not null CONSTRAINT LINK_Profession_ID ' +
' REFERENCES Профессия(ID) , ' +
' LinkStatus INTEGER not null CONSTRAINT LINK_Status_ID ' +
' REFERENCES Статус(ID)' + ')';
Conn.Execute(request);
request := 'CREATE TABLE Отпуски ' + '( ' +
' ID IDENTITY (1, 1) CONSTRAINT PK_Holidays_ID PRIMARY KEY , ' +
' LinkWoker INTEGER not null CONSTRAINT LINK_Woker_ID ' +
' REFERENCES Рабочие(ID) , ' +
' DateBegin Date , ' +
' Length INTEGER ' + ')';
Conn.Execute(request);
request := 'CREATE TABLE Типы_дней ' + '( ' +
' ID INTEGER UNIQUE, ' +
' NameOfType CHAR(128) ' + ')';
Conn.Execute(request);
request := 'CREATE TABLE Месяцы ' + '( ' +
' ID INTEGER UNIQUE, ' +
' MonthName CHAR(128) ' + ')';
Conn.Execute(request);
request := 'CREATE TABLE Сохраненные_графики ' + '( ' +
' ID IDENTITY (1, 1) CONSTRAINT PK_SavedGraphic_ID PRIMARY KEY , ' +
' NameGraphic CHAR(128) , ' +
' DateOfSave DATE , ' +
' LinkMonthNum INTEGER not null CONSTRAINT LINK_Month_ID ' +
' REFERENCES Месяцы(ID) , ' +
' YearNum CHAR(128) ' + ')';
Conn.Execute(request);
request := 'CREATE TABLE Графики ' + '( ' +
' ID IDENTITY (1, 1) CONSTRAINT PK_Graphic_ID PRIMARY KEY, ' +
' LinkSaveID INTEGER not null CONSTRAINT LINK_SavedGraphics_ID ' +
' REFERENCES Сохраненные_графики(ID) , ' +
' DateOfCell DATE , ' +
' LinkWoker INTEGER not null CONSTRAINT LINK_Woker_IDN ' +
' REFERENCES Рабочие(ID) , ' +
' LinkTypeOfDay INTEGER not null CONSTRAINT LINK_TypeOfDay_ID ' +
' REFERENCES Типы_дней(ID) ' + ')';
Conn.Execute(request);
request := 'CREATE TABLE Праздники ' + '( ' +
' ID IDENTITY (1, 1) CONSTRAINT PK_Celebrate_ID PRIMARY KEY , ' +
' Title CHAR(128) ' + ')';
Conn.Execute(request);
request := 'CREATE TABLE Выходные ' + '( ' +
' ID IDENTITY (1, 1) CONSTRAINT PK_DateCelebrate_ID PRIMARY KEY , ' +
' DateCelebrate DATE , ' +
' LinkName INTEGER not null CONSTRAINT LINK_HOL_ID' +
' REFERENCES Праздники(ID) ' + ')';
Conn.Execute(request);
//---------------------------------Заполнение полей значениями------------------
request := 'INSERT INTO Месяцы(ID, MonthName)'+
' VALUES (0, ''Январь '')';
Conn.Execute(request);
request := 'INSERT INTO Месяцы(ID, MonthName)'+
' VALUES (1, ''Февраль '')';
Conn.Execute(request);
request := 'INSERT INTO Месяцы(ID, MonthName)'+
' VALUES (2, ''Март '')' ;
Conn.Execute(request);
request := 'INSERT INTO Месяцы(ID, MonthName)'+
' VALUES (3, ''Апрель '')';
Conn.Execute(request);
request := 'INSERT INTO Месяцы(ID, MonthName)'+
' VALUES (4, ''Май '')';
Conn.Execute(request);
request := 'INSERT INTO Месяцы(ID, MonthName)'+
' VALUES (5, ''Июнь '')';
Conn.Execute(request);
request := 'INSERT INTO Месяцы(ID, MonthName)'+
' VALUES (6, ''Июль '')';
Conn.Execute(request);
request := 'INSERT INTO Месяцы(ID, MonthName)'+
' VALUES (7, ''Август '')';
Conn.Execute(request);
request := 'INSERT INTO Месяцы(ID, MonthName)'+
' VALUES (8, ''Сентябрь '')';
Conn.Execute(request);
request := 'INSERT INTO Месяцы(ID, MonthName)'+
' VALUES (9, ''Октябрь '')';
Conn.Execute(request);
request := 'INSERT INTO Месяцы(ID, MonthName)'+
' VALUES (10, ''Ноябрь '')';
Conn.Execute(request);
request := 'INSERT INTO Месяцы(ID, MonthName)'+
' VALUES (11, ''Декабрь '')';
Conn.Execute(request);
//------------------------------------------------------------------------------------/
request := 'INSERT INTO Типы_дней(ID, NameOfType)'+
' VALUES (0, ''Смена1 '')';
Conn.Execute(request);
request := 'INSERT INTO Типы_дней(ID, NameOfType)'+
' VALUES (1, ''Смена2 '')';
Conn.Execute(request);
request := 'INSERT INTO Типы_дней(ID, NameOfType)'+
' VALUES (2, ''Смена3 '')';
Conn.Execute(request);
request := 'INSERT INTO Типы_дней(ID, NameOfType)'+
' VALUES (3, ''Смена4 '')';
Conn.Execute(request);
request := 'INSERT INTO Типы_дней(ID, NameOfType)'+
' VALUES (4, ''Нерабочий день '')';
Conn.Execute(request);
request := 'INSERT INTO Типы_дней(ID, NameOfType)'+
' VALUES (5, ''Отпуск '')';
Conn.Execute(request);
//------------------------------------------------------------------------------------/
request := 'INSERT INTO Профессия(ID, NameProfession)'+
' VALUES (1, ''ПЭС '')';
Conn.Execute(request);
request := 'INSERT INTO Профессия(ID, NameProfession)'+
' VALUES (2, ''ДЭС '')';
Conn.Execute(request);
//------------------------------------------------------------------------------------/
request := 'INSERT INTO Статус(ID, NameStatus)'+
' VALUES (1, ''Вентиляторщик, работающий в выходные '')';
Conn.Execute(request);
request := 'INSERT INTO Статус(ID, NameStatus)'+
' VALUES (2, ''Вентиляторщик, не работающий в выходные '')';
Conn.Execute(request);
request := 'INSERT INTO Статус(ID, NameStatus)'+
' VALUES (3, ''Дежурный '')';
Conn.Execute(request);
request := 'INSERT INTO Статус(ID, NameStatus)'+
' VALUES (4, ''Рабочий'')';
Conn.Execute(request);
//------------------------------------------------------------------------------------/
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (1, ''Забудский С. Ю.'',78704, 1, 1)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (2, ''Ивановский А. В.'',79856, 1, 1)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (3, ''Палагушкин Б. А.'',79485, 1, 1)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (4, ''Девяткин А. М.'',55288, 1, 1)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (5, ''Филонов М. Л.'',107083, 2, 2)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (6, ''Васекин С. А.'',79446, 1, 3)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (7, ''Статилко В. В.'',78715, 1, 3)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (8, ''Васильев А. Д.'',55337, 1, 3)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (9, ''Матейко А. В.'',55681, 1, 3)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (10, ''Чирок А. Н.'',55844, 1, 3)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (11, ''Никулин А. Н.'',67128, 1, 4)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (12, ''Букин Б. И.'',52696, 1, 2)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (13, ''Сибгатулин Р. И.'',104624, 1, 3)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (14, ''Сибгатулин Р. И.'',71763, 1, 3)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (15, ''Денисенко В. В.'',80087, 1, 3)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (16, ''Аборонов В. И.'',55780, 1, 3)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (17, ''Симулин С. Г.'',86149, 1, 4)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (18, ''Майер В. В.'',109859, 1, 4)';
Conn.Execute(request);
request := 'INSERT INTO Рабочие(ID, WokerName, TabNumber, LinkProfession, LinkStatus)'+
' VALUES (19, ''Гетц А. В.'',109525, 1, 1)';
Conn.Execute(request);
//------------------------------------------------------------------------------------/
request := 'INSERT INTO Праздники(ID, Title)'+
' VALUES (1, ''Новый год'')';
Conn.Execute(request);
request := 'INSERT INTO Праздники(ID, Title)'+
' VALUES (2, ''Международный женский день'')';
Conn.Execute(request);
request := 'INSERT INTO Праздники(ID, Title)'+
' VALUES (3, ''Наурыз мейрамы'')';
Conn.Execute(request);
request := 'INSERT INTO Праздники(ID, Title)'+
' VALUES (4, ''Праздник единства народа Казахстана'')';
Conn.Execute(request);
request := 'INSERT INTO Праздники(ID, Title)'+
' VALUES (5, ''День Победы'')';
Conn.Execute(request);
request := 'INSERT INTO Праздники(ID, Title)'+
' VALUES (6, ''День Конституции Республики Казахстан'')';
Conn.Execute(request);
request := 'INSERT INTO Праздники(ID, Title)'+
' VALUES (7, ''День республики'')';
Conn.Execute(request);
request := 'INSERT INTO Праздники(ID, Title)'+
' VALUES (8, ''День Независимости'')';
Conn.Execute(request);
//------------------------------------------------------------------------------------/
request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+
' VALUES (1, ''01.01.2008'', 1)';
Conn.Execute(request);
request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+
' VALUES (2, ''02.01.2008'', 1)';
Conn.Execute(request);
request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+
' VALUES (3, ''08.03.2008'', 2)';
Conn.Execute(request);
request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+
' VALUES (4, ''22.03.2008'', 3)';
Conn.Execute(request);
request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+
' VALUES (5, ''01.05.2008'', 4)';
Conn.Execute(request);
request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+
' VALUES (6, ''09.05.2008'', 5)';
Conn.Execute(request);
request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+
' VALUES (7, ''30.08.2008'', 6)';
Conn.Execute(request);
request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+
' VALUES (8, ''25.10.2008'', 7)';
Conn.Execute(request);
request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+
' VALUES (9, ''16.12.2008'', 8)';
Conn.Execute(request);
request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+
' VALUES (10, ''17.12.2008'', 8)';
Conn.Execute(request);
request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+
' VALUES (11, ''15.12.2007'', 8)';
Conn.Execute(request);
request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+
' VALUES (12, ''16.12.2007'', 8)';
Conn.Execute(request);
request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+
' VALUES (13, ''17.12.2007'', 8)';
Conn.Execute(request);
request := 'INSERT INTO Выходные(ID, DateCelebrate, LinkName)'+
' VALUES (14, ''08.31.2007'', 2)';
Conn.Execute(request);
//------------------------------------------------------------------------------------/
request := 'INSERT INTO Отпуски(ID, LinkWoker, DateBegin, Length)'+
' VALUES (1, 14, ''08.11.2007'', 26)';
Conn.Execute(request);
request := 'INSERT INTO Отпуски(ID, LinkWoker, DateBegin, Length)'+
' VALUES (2, 16, ''18.12.2007'', 26)';
Conn.Execute(request);
request := 'INSERT INTO Отпуски(ID, LinkWoker, DateBegin, Length)'+
' VALUES (3, 2, ''24.12.2007'', 20)';
Conn.Execute(request);
request := 'INSERT INTO Отпуски(ID, LinkWoker, DateBegin, Length)'+
' VALUES (4, 9, ''01.11.2007'', 10)';
Conn.Execute(request);
request := 'INSERT INTO Отпуски(ID, LinkWoker, DateBegin, Length)'+
' VALUES (5, 6, ''01.11.2007'', 18)';
Conn.Execute(request);
... работ при проведении подготовительных выработок шахт позволит значительно улучшить основные технико-экономические показатели их сооружения. 1.3. Маркетинговая деятельность предприятия ООО «Инжстрой-Сити Монолит» является, по своей сути, производственной организацией, у которой конечный результат ее производственного процесса – объект завершенного строительства. Он как товар не рассматривается ...
... схем «ухода» от налогов. Такие налоговые разработки, не направленные на уравнивание возможностей налогоплательщиков по использованию схем минимизации, исключающие тиражирование примененных методик, представляют особую ценность для развития бизнеса. 8 Труды молодых ученых № 1, 2008 Таким образом, общие принципы налоговой оптимизации можно сформулировать следующим образом: - законность, ...
... -текущих планов мероприятий – до исполнения. -перспективных планов мероприятий – 5 лет. Выводы по разделу 1. В первом разделе были рассмотрены теоретические основы управления качеством, являющимися базовыми при разработке системы управления качеством. Был затронут международный опыт данной деятельности. При работе над первым разделом была рассмотрена и представлена в разделе, процедура получения ...
... К. Сатпаева» для просмотра и ввода информации системы оперативно-диспетчерского контроля и управления, создаваемые на Visual Basic. Специфика используемого в системе оперативно-диспетчерского контроля и управления РГП «Канал им. К. Сатпаева» ПО такая, что разработка ПО, как таковая, может производиться только при создании самой системы. Применяемое ПО является полуфабрикатом. Основная задача ...
0 комментариев