Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Временные характеристики оптимизированного запроса↑ ⇐ ПредыдущаяСтр 4 из 4 Содержание книги
Поиск на нашем сайте
Для оценки стоимости выполнения операций реляционной алгебры оптимизированного запроса используется та же статистика, что и для исходного запроса (таблица 5.2). Для расчета временных характеристик оптимизированного запроса используется оптимизированное операционное дерево, изображенное на рисунке 5.6. В узле (1) оптимизированного операционного дерева выполняется операция селекции по условию: f1= (Obj.price>92000). Расчет стоимости выполнения операции селекции происходит по формуле: .
В узле (2) оптимизированного операционного дерева выполняется операция селекции по условию: f2 = (Inv.firm="Московский СпортИнвентарь"). Расчет стоимости выполнения операции селекции происходит по формуле: .
В узле (7) оптимизированного операционного дерева выполняется операция селекции по условию: f3 = (Pom.square< 47). Расчет стоимости выполнения операции селекции происходит по формуле: . Расчет стоимости в узле (3) производится по формуле: . Расчет стоимости в узле (4) производится по формуле: Расчет стоимости в узле (5) производится по формуле: Расчет стоимости в узле (6) производится по формуле: Расчет стоимости в узле (8) производится по формуле:
Так как операция проекции располагается последней, то ее не учитывают при расчете сложности запроса. Окончательно имеем: . 5.2. Многотабличный запрос на выборку по условию нескольких строк и логической формулы условий столбцов с использованием "or" В базе данных хранится информация о поступившей бытовой технике, мебели, инвентаре и помещениях, к которым они прикреплены Требуется вывести коды тренажеров, ценой более 92000, производства фирмы «Московский СпортИнвентарь», которые прикреплены к спортивным залам площадью менее 47 кв.м. Для упрощения записи введем обозначения, представленные в таблице 5.2.
Таблица 5.3– Обозначения и пояснения
Выражение для запроса с использованием операций реляционной алгебры Выражение для запроса с использование операций реляционной алгебры представлено на рисунке 5.7. Рисунок 5.7
В данном выражении проекция производится по набору атрибутов X, который имеет следующий вид, представленный на рисунке 5. 8, а селекция проводится по формуле f, представленной на рисунке 5. 9.
Рисунок 5.8
fó Obj.Цена < (92000); OR (Inv.Фирма = (Московский СпортИнвентарь); OR (Pom.Номер= "47")
Рисунок 5.9
Исходное операционное дерево для запроса Исходное операционное дерево для запроса представлено на рисунке 5.10.
Рисунок 5.10 Исходный запрос на языке SQL Текст исходного запроса на SQL представлен на рисунке 5.11. SELECT ARRIVAL_OBJ.code_object, ARRIVAL_OBJ.price, INVENTAR.naimenovanie, POMESHENIE.num_p, POMESHENIE.square FROM (((ARRIVAL_OBJ INNER JOIN INVNUM_INV ON ARRIVAL_OBJ.code_object = INVNUM_INV.code_object) INNER JOIN INVENTAR ON (INVENTAR.code_object = INVNUM_INV.code_object) AND (ARRIVAL_OBJ.code_object = INVENTAR.code_object)) INNER JOIN (INV_IN_ZAL INNER JOIN POMESHENIE ON INV_IN_ZAL.num_p = POMESHENIE.num_p) ON INVNUM_INV.inv_number = INV_IN_ZAL.inv_number) INNER JOIN ZAL ON (ZAL.num_p = INV_IN_ZAL.num_p) AND (POMESHENIE.num_p = ZAL.num_p) WHERE (((POMESHENIE.num_p)=47)) OR (((ARRIVAL_OBJ.price)<92000)) OR (((INVENTAR.firm)="Московский СпортИнвертарь")); Рисунок 5.11
ЗАКЛЮЧЕНИЕ Целью данного курсового проекта является изучение способов оптимизации базы данных, а так же запросов используемых в этой базе данных. При оптимизации запросов необходимо используя исходное операционное дерево данного запроса вычислить время его выполнения и если возможно, то оптимизировать запрос и просчитать время выполнения уже оптимизированного запроса. Оптимизированный запрос должен быстрее выполняться, чем исходный неоптимизированный запрос. Оптимизация запроса достигается путем уменьшения количества данных, необходимых для обработки. Время выполнения запроса №1 составило T(R)=16690. После оптимизации время выполнения запроса сократилось до T(R=3930). Отношение времени выполнения исходногои оптимизированного запросов равно . При практическом измерении отношение времени выполнения исходного запроса к оптимизированному составило . Расхождение практического времени выполнения и рассчитанного вызвано неточными измерениями на практике.
Приложение 1
unit Unit1;
interface
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Data.DB, Data.Win.ADODB, Vcl.Grids, Vcl.DBGrids;
type TForm1 = class(TForm) ADOConnection1: TADOConnection; DataSource1: TDataSource; ADOQuery1: TADOQuery; ADOTable1: TADOTable; DBGrid1: TDBGrid; Button2: TButton; Button3: TButton; ADOQuery2: TADOQuery; DataSource2: TDataSource; DBGrid2: TDBGrid; Label1: TLabel; Label2: TLabel; ADOQuery3: TADOQuery; ADOQuery4: TADOQuery; DataSource3: TDataSource; DataSource4: TDataSource; DBGrid3: TDBGrid; DBGrid4: TDBGrid; Label3: TLabel; Label4: TLabel; Button1: TButton; ADOTable2: TADOTable; ADOTable3: TADOTable; ADOTable4: TADOTable; ADOQuery5: TADOQuery; DataSource5: TDataSource; ADOTable5: TADOTable; ADOQuery6: TADOQuery; ADOQuery7: TADOQuery; DataSource6: TDataSource; DataSource7: TDataSource; ADOTable6: TADOTable; ADOTable7: TADOTable; Label5: TLabel; Label6: TLabel; Label7: TLabel; DBGrid5: TDBGrid; DBGrid6: TDBGrid; DBGrid7: TDBGrid; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Button4: TButton; Button5: TButton; Label12: TLabel; Edit1: TEdit; Button6: TButton; Label13: TLabel; Label14: TLabel; ADOQuery8: TADOQuery; ADOQuery9: TADOQuery; ADOQuery10: TADOQuery; DataSource8: TDataSource; DataSource9: TDataSource; DataSource10: TDataSource; DBGrid8: TDBGrid; DBGrid9: TDBGrid; DBGrid10: TDBGrid; Label15: TLabel; Label16: TLabel; Label17: TLabel; Button7: TButton; Label18: TLabel; Button8: TButton; ADOTable8: TADOTable; ADOTable9: TADOTable; ADOTable10: TADOTable; Label19: TLabel; Label20: TLabel; DBGrid11: TDBGrid; ADOQuery11: TADOQuery; DataSource11: TDataSource; Button9: TButton; Button10: TButton; Button11: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure Button11Click(Sender: TObject);
private { Private declarations } public { Public declarations } end;
var Form1: TForm1; Z1, Z2: longint; num, code_obj, case_inv, INV_ID: integer; // num - номер помещения s1, s: string; inv_num_tec, inv_num_meb, inv_num_invent, all_count: longint; mas1, mas2: array of integer; naimenovanie,ddate: string; implementation
{$R *.dfm}
procedure FileWr; var f: Textfile; //name: string; begin AssignFile (f, 'ids.txt'); //открыли файл Rewrite (f); WriteLn(f, inttostr(code_obj)); WriteLn(f, inttostr(inv_num_tec)); WriteLn(f, inttostr(inv_num_meb)); WriteLn(f, inttostr(inv_num_invent));
CloseFile (f);
end;
//////////////////////////// procedure TabPerson; var s,s1:string; surname, pass, rost, ves, nomer: string; passport, flat: integer; i, n: integer; List:TStringlist; begin {List:=TStringlist.Create; passport:= 999999999; for i:= 0 to 9 do begin //Паспорт inc(passport); flat:= 1 + random (199); //Фамилия List.LoadFromFile('C:\docs\RAD Studio\Projects\TOBD\surname100.txt'); n:= random (List.Count - 1); surname:= List[n];
//Номер n:= random (98) +1; pass:= inttostr(passport); ves:= inttostr(0); rost:= inttostr(0); nomer:= inttostr (n);
//s:='insert into [Person] values ('+ inttostr(passport)+ ',"' +surname+'","' +surname+'","' +surname+'","' +surname+'","' +surname+'","' +surname+'","' +surname+'","' +surname+'",'+ inttostr(flat)+ ')'; //s1:='select * FROM [Person]'; s:='insert into [Player] values ('+ pass+ ',"' +rost+'","'+ves+ '","'+''+'","'+''+'","'+nomer+'")'; s1:='select * FROM [Player]'; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(s); ADOQuery1.ExecSQL; ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(s1); ADOQuery1.Active:=True; end; } end;
procedure tabINV_ID; var i: integer; begin inc (inv_id); all_count:= all_count + 4; if naimenovanie = 'Тренажер' then begin i:= random (length (mas2) - 1); num:= mas2[i] end else begin i:= random (length (mas1) - 1); num:= mas1[i] end;
s:='insert into [INV_IN_ZAL] values ('+ inttostr(inv_id)+ ',"'+ ddate+'","'+ inttostr(num)+ '",'+inttostr(inv_num_invent)+')'; s1:='select * FROM [INV_IN_ZAL]'; with Form1 do begin ADOQuery10.SQL.Clear; ADOQuery10.SQL.Add(s); ADOQuery10.ExecSQL; ADOQuery10.SQL.Clear;
ADOQuery10.SQL.Add(s1); // ADOQuery5.Active:=True;
end; end;
///////////////////////////// procedure TabINVENUM; begin all_count:= all_count + 2; case case_inv of 0: begin s:='insert into [INVNUM_TEC] values ('+ inttostr(inv_num_tec)+ ','+inttostr(code_obj)+')'; s1:='select * FROM [INVNUM_TEC]'; with Form1 do begin ADOQuery5.SQL.Clear; ADOQuery5.SQL.Add(s); ADOQuery5.ExecSQL; ADOQuery5.SQL.Clear;
ADOQuery5.SQL.Add(s1); // ADOQuery5.Active:=True;
end; end; 1: begin s:='insert into [INVNUM_MEB] values ('+ inttostr(inv_num_meb)+ ','+inttostr(code_obj)+')'; s1:='select * FROM [INVNUM_MEB]'; with Form1 do begin ADOQuery6.SQL.Clear; ADOQuery6.SQL.Add(s); ADOQuery6.ExecSQL; ADOQuery6.SQL.Clear;
ADOQuery6.SQL.Add(s1); // ADOQuery6.Active:=True;
end; end; 2: begin s:='insert into [INVNUM_INV] values ('+ inttostr(inv_num_invent)+ ','+inttostr(code_obj)+')'; s1:='select * FROM [INVNUM_INV]'; with Form1 do begin ADOQuery7.SQL.Clear; ADOQuery7.SQL.Add(s); ADOQuery7.ExecSQL; ADOQuery7.SQL.Clear;
ADOQuery7.SQL.Add(s1); // ADOQuery7.Active:=True;
end; tabINV_ID; end; end;
end;
///////////////////////////// procedure TabTECHNO; var i: longint; t: integer; naimenovanie, firm, model: string; begin all_count:= all_count + 4; inc(inv_num_tec);
t:= random (3); //Наименование case t of 0: naimenovanie:= 'Телевизор'; 1: naimenovanie:= 'Фен'; 2: naimenovanie:= 'Стиральная машинка'; end;
t:= random (3); //Фирма case t of 0: firm:= 'Panasonic'; 1: firm:= 'Samsung'; 2: firm:= 'LG'; end;
t:= random (3); //Модель case t of 0: model:= 'AEJDL82732K'; 1: model:= 'SDM29FN3SAD'; 2: model:= 'FSDFKASD83Y'; end;
s:='insert into [TECHNO] values ('+ inttostr(code_obj)+ ',"'+ naimenovanie+'","'+firm+ '","'+model+'")'; s1:='select * FROM [TECHNO]'; with Form1 do begin ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add(s); ADOQuery2.ExecSQL; ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(s1); // ADOQuery2.Active:=True; // ADOTable2.Active:= true; // DBGrid2.Refresh;
end; case_inv:= 0; TabINVENUM; end;
///////////////////////////// procedure TabMEBEL; var //inv_i: longint; length, width, height, t: integer; naimenovanie, firm: string; begin all_count:= all_count + 6; inc(inv_num_meb);
t:= random (4); //Наименование case t of 0: naimenovanie:= 'Диван'; 1: naimenovanie:= 'Кровать'; 2: naimenovanie:= 'Стул'; 3: naimenovanie:= 'Стол'; end;
t:= random (3); //Фирма case t of 0: firm:= 'ЯрМебель'; 1: firm:= 'Курский мебельный завод'; 2: firm:= 'Славянушка'; end;
length:= (10 + random (10)) * 10; //Длина width:= (5 + random (8)) * 10; //Ширина height:= (5 + random (8)) * 10; //Высота
s:='insert into [MEBEL] values ('+ inttostr(code_obj)+ ',"'+ naimenovanie+'","'+firm+ '",'+ inttostr(length)+','+ inttostr(width)+','+ inttostr(height)+')'; s1:='select * FROM [MEBEL]'; with Form1 do begin ADOQuery3.SQL.Clear; ADOQuery3.SQL.Add(s); ADOQuery3.ExecSQL; ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add(s1); // ADOQuery3.Active:=True; end; case_inv:= 1; TabINVENUM; end;
///////////////////////////// procedure TabINVENTAR; var //inv_i, i: longint; t: integer; firm, model: string; begin all_count:= all_count + 4; inc(inv_num_INVENT);
t:= random (4); //Наименование case t of 0: naimenovanie:= 'Мяч'; 1: naimenovanie:= 'Тренажер'; 2: naimenovanie:= 'Бутцы'; 3: naimenovanie:= 'Форма'; end;
t:= random (3); //Фирма case t of 0: firm:= 'Select'; 1: firm:= 'Hummer'; 2: firm:= 'Московский СпортИнвентарь'; end;
t:= random (3); //Модель case t of 0: model:= 'ASDLAKSD3J3'; 1: model:= 'ASD312D1DAD'; 2: model:= 'IJUQWEE2NGY'; end; s:='insert into [INVENTAR] values ('+ inttostr(code_obj)+ ',"'+ naimenovanie+'","'+firm+ '","'+model+'")'; s1:='select * FROM [INVENTAR]'; with Form1 do begin ADOQuery4.SQL.Clear; ADOQuery4.SQL.Add(s); ADOQuery4.ExecSQL; ADOQuery4.SQL.Clear;
ADOQuery4.SQL.Add(s1); // ADOQuery4.Active:=True; end; case_inv:= 2; TabINVENUM; end;
///////////////////////////// procedure TecMebInvCASE; var //inv_i: longint; t: integer; begin begin t:= random (3); case t of 0: TabTECHNO; 1: TabMEBEL; 2: TabINVENTAR; end; end; end;
procedure TabArrival_Obj; var i: longint; kol, price, ddate_temp: integer;
List:TStringlist; begin all_count:= all_count + 3; // code_obj:= 19667; // for i:= Z1 to Z2 do while all_count < 1001000 do
begin inc (code_obj); //Form1.label8.Caption:= inttostr(code_obj); // kol:= 1 + random (10); // ddate_temp:= 1 + random (29); ddate:= inttostr (ddate_temp)+'.'; //число if ddate_temp < 29 then ddate_temp:= 1+random (11) else begin ddate_temp:= 1+random (11); if ddate_temp = 2 then inc(ddate_temp); end; ddate:= ddate + inttostr (ddate_temp)+'.'; // месяц ddate_temp:= 1999 + random (14); ddate:= ddate + inttostr (ddate_temp); // price:= (10 + random (90)) * 1000; //
s:='insert into [ARRIVAL_OBJ] values ('+ inttostr(code_obj)+ ',"'+ddate+ '","'+inttostr(price)+'")'; s1:='select * FROM [ARRIVAL_OBJ]'; with Form1 do begin ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(s); ADOQuery1.ExecSQL; ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(s1); // ADOQuery1.Active:=True; end; TecMebInvCASE; end; end;
////////////////////////////
procedure RefreshTabs; begin Form1.DBGrid1.Refresh; Form1.DBGrid2.Refresh; // Form1.DBGrid3.Refresh; // Form1.DBGrid4.Refresh; // Form1.ADOTable1.Active:= False; // Form1.ADOTable1.Active:= True; // Form1.DBGrid1.DataSource:= DataSource1; end;
procedure TForm1.Button10Click(Sender: TObject); var sss1, sss2, sss3: string; t1,t2: TDateTime; Hr,min,sec,msec: Word;
begin
sss1:= 'SELECT price.code_object, price.price, firm.naimenovanie, square.num_p, square.square FROM (ZAL INNER JOIN square ON ZAL.num_p = square.num_p) INNER JOIN (((price INNER JOIN firm ON '; sss2:= 'price.code_object = firm.code_object) INNER JOIN INVNUM_INV ON firm.code_object = INVNUM_INV.code_object) INNER JOIN INV_IN_ZAL ON INVNUM_INV.inv_number = INV_IN_ZAL.inv_number) ON ZAL.num_p = INV_IN_ZAL.num_p;'; //sss3:= ' ON ZAL.num_p = INV_IN_ZAL.num_p) ON (INV_IN_ZAL.num_p = POMESHENIE.num_p) AND (POMESHENIE.num_p = ZAL.num_p) WHERE (((ARRIVAL_OBJ.price)>92000) AND ((POMESHENIE.square)<47) AND ((INVENTAR.firm)="Московский СпортИнвентарь"));';
t1:= time; ADOQuery11.SQL.Text:= sss1+sss2;
// ADOQuerry11.sql
// label20.Caption:= 'DecodeTime: ' +inttostr (msec); // label20.Caption:= 'GetTickCount: ' + inttostr ();
t2:= time; DecodeTime (T2-T1,Hr,min,sec,msec); label20.Caption:= 'DecodeTime: '+inttostr (msec); ADOQuery11.Active:= True; end;
procedure TForm1.Button11Click(Sender: TObject); var sss1, sss2, sss3: string; t1,t2: TDateTime; Hr,min,sec,msec: Word;
begin
sss1:= 'SELECT ARRIVAL_OBJ.code_object, ARRIVAL_OBJ.price, INVENTAR.naimenovanie,POMESHENIE.num_p, POMESHENIE.square FROM (((select * from ARRIVAL_OBJ where ((ARRIVAL_OBJ.price)>92000)) as O) INNER JOIN ((select * from INVENTAR where'; sss2:= ' ((INVENTAR.firm)="Московский СпортИнвентарь")) as I) ON O.code_object = I.code_object) INNER JOIN ((ZAL INNER JOIN (INVNUM_INV INNER JOIN INV_IN_ZAL ON INVNUM_INV.inv_number = INV_IN_ZAL.inv_number) ON ZAL'; sss3:= '.num_p = INV_IN_ZAL.num_p) INNER JOIN ((select * from POMESHENIE where ((POMESHENIE.square)<47)) as S) ON ZAL.num_p = S.num_p) ON I.code_object = INVNUM_INV.code_object;';
t1:= time; ADOQuery11.SQL.Text:= sss1+sss2+sss3;
// ADOQuerry11.sql
// label20.Caption:= 'DecodeTime: ' +inttostr (msec); // label20.Caption:= 'GetTickCount: ' + inttostr ();
ADOQuery11.Active:= True; t2:= time; DecodeTime (T2-T1,Hr,min,sec,msec); label20.Caption:= 'DecodeTime: '+inttostr (msec); end;
procedure TForm1.Button1Click(Sender: TObject); begin RefreshTabs; end;
procedure TForm1.Button2Click(Sender: TObject); begin //table:= ADOTable1.TableName; ADOQuery10.SQL.Text:= 'DELETE * FROM ' + ADOTable10.TableName; ADOQuery10.ExecSQL;
ADOQuery9.SQL.Text:= 'DELETE * FROM ' + ADOTable9.TableName; ADOQuery9.ExecSQL;
ADOQuery8.SQL.Text:= 'DELETE * FROM ' + ADOTable8.TableName; ADOQuery8.ExecSQL;
ADOQuery7.SQL.Text:= 'DELETE * FROM ' + ADOTable7.TableName; ADOQuery7.ExecSQL;
ADOQuery6.SQL.Text:= 'DELETE * FROM ' + ADOTable6.TableName; ADOQuery6.ExecSQL;
ADOQuery5.SQL.Text:= 'DELETE * FROM ' + ADOTable5.TableName; ADOQuery5.ExecSQL;
ADOQuery4.SQL.Text:= 'DELETE * FROM ' + ADOTable4.TableName; ADOQuery4.ExecSQL;
ADOQuery3.SQL.Text:= 'DELETE * FROM ' + ADOTable3.TableName; ADOQuery3.ExecSQL;
ADOQuery2.SQL.Text:= 'DELETE * FROM ' + ADOTable2.TableName; ADOQuery2.ExecSQL;
ADOQuery1.SQL.Text:= 'DELETE * FROM ' + ADOTable1.TableName; ADOQuery1.ExecSQL;
inv_id:= 0;
all_count:= 0;
code_obj:= 0; inv_num_tec:= 999999; inv_num_meb:= 999999; inv_num_invent:= 999999;
FileWr;
// ADOQuery2.Active:= True; // Form1.DBGrid1.Refresh; // Form1.DBGrid2.Refresh; { ADOQuery3.SQL.Text:= 'DELETE * FROM ' + ADOTable3.TableName; ADOQuery3.ExecSQL;
ADOQuery4.SQL.Text:= 'DELETE * FROM ' + ADOTable4.TableName; ADOQuery4.ExecSQL; } end;
procedure TForm1.Button3Click(Sender: TObject); begin TabArrival_Obj; Form1.label8.Caption:= inttostr(code_obj); label9.Caption:= 'invnum_tec: ' + inttostr(inv_num_tec); label10.Caption:= 'invnum_meb: ' + inttostr(inv_num_meb); label11.Caption:= 'invnum_invent: ' + inttostr(inv_num_invent); label19.Caption:= 'all_count: ' + inttostr(all_count); //RefreshTabs; FileWr; end;
procedure TForm1.Button4Click(Sender: TObject); begin ADOQuery1.Active:= true; ADOQuery2.Active:= true; ADOQuery3.Active:= true; ADOQuery4.Active:= true; ADOQuery5.Active:= true; ADOQuery6.Active:= true; ADOQuery7.Active:= true; ADOQuery8.Active:= true; ADOQuery9.Active:= true; ADOQuery10.Active:= true; end;
procedure TForm1.Button5Click(Sender: TObject); begin ADOQuery1.Active:= false; ADOQuery2.Active:= false; ADOQuery3.Active:= false; ADOQuery4.Active:= false; ADOQuery5.Active:= false; ADOQuery6.Active:= false; ADOQuery7.Active:= false; ADOQuery8.Active:= false; ADOQuery9.Active:= false; ADOQuery10.Active:= false; end;
procedure TForm1.Button6Click(Sender: TObject); begin Z2:= code_obj + strtoint(Edit1.Text) -1; label13.Caption:= 'Z2 = ' + inttostr(Z2 + 1); end;
procedure TForm1.Button7Click(Sender: TObject); var i, t: integer; square: integer; number: integer; naznachenie: string; type_zal: string; begin all_count:= 300; setlength (mas1, 0); setlength (mas2, 0); //////// POMESHENIE //////// num:= 0; for I:= 0 to 49 do begin inc(num); // № square:= 45 + random (15); // Площадь // t:= random (3); naznachenie:= 'Занятие спортом'; //Назначение
s:='insert into [POMESHENIE] values ('+ inttostr(num)+ ',"'+ inttostr(square)+'","'+naznachenie+'")'; s1:='select * FROM [POMESHENIE]'; with Form1 do begin ADOQuery8.SQL.Clear; ADOQuery8.SQL.Add(s); ADOQuery8.ExecSQL; ADOQuery8.SQL.Clear;
ADOQuery8.SQL.Add(s1);
end; //////////// ZAL //////////// number:= num; t:= random (2); case t of 0: begin setlength (mas1, length(mas1) + 1); mas1[length(mas1)-1]:= number; type_zal:= 'Игровой зал'; end; 1: begin setlength (mas2, length(mas2) + 1); mas2[length(mas2)-1]:= number; type_zal:= 'Зал обшей физической подготовки'; end; // 2: type_zal:= 'Манеж'; end; s:='insert into [ZAL] values ('+ inttostr(num)+ ',"'+ type_zal+'","'+ inttostr(number)+'")'; s1:='select * FROM [ZAL]'; with Form1 do begin ADOQuery9.SQL.Clear; ADOQuery9.SQL.Add(s); ADOQuery9.ExecSQL; ADOQuery9.SQL.Clear;
ADOQuery9.SQL.Add(s1);
end; //////// INV_IN_ZAL ////////
end; end;
procedure TForm1.Button8Click(Sender: TObject); begin ADOQuery8.SQL.Text:= 'DELETE * FROM ' + 'POMESHENIE'; ADOQuery8.ExecSQL;
ADOQuery9.SQL.Text:= 'DELETE * FROM ' + 'ZAL'; ADOQuery9.ExecSQL;
ADOQuery10.SQL.Text:= 'DELETE * FROM ' + 'INV_IN_ZAL'; ADOQuery10.ExecSQL; end;
procedure TForm1.Button9Click(Sender: TObject); var sss1, sss2, sss3: string; t1,t2: TDateTime; Hr,min,sec,msec: Word; begin
sss1:= 'SELECT ARRIVAL_OBJ.code_object, ARRIVAL_OBJ.price, INVENTAR.naimenovanie, POMESHENIE.num_p, POMESHENIE.square FROM POMESHENIE INNER JOIN (ZAL INNER JOIN (((ARRIVAL_OBJ INNER JOIN INVENTAR ON ARRIVAL_OBJ.code_object '; sss2:= '= INVENTAR.code_object) INNER JOIN INVNUM_INV ON (ARRIVAL_OBJ.code_object = INVNUM_INV.code_object) AND (INVENTAR.code_object = INVNUM_INV.code_object)) INNER JOIN INV_IN_ZAL ON INVNUM_INV.inv_number = INV_IN_ZAL.inv_number)'; sss3:= ' ON ZAL.num_p = INV_IN_ZAL.num_p) ON (INV_IN_ZAL.num_p = POMESHENIE.num_p) AND (POMESHENIE.num_p = ZAL.num_p) WHERE (((ARRIVAL_OBJ.price)>92000) AND ((POMESHENIE.square)<47) AND ((INVENTAR.firm)="Московский СпортИнвентарь"));';
//ADOQuery11.SQL.Clear; t1:= time;
ADOQuery11.SQL.Text:= sss1+sss2+sss3; {ADOQuery11.SQL.Clear; ADOQuery11.SQL.Text:= sss1+sss2+sss3; ADOQuery11.SQL.Clear; ADOQuery11.SQL.Text:= sss1+sss2+sss3; ADOQuery11.SQL.Clear; ADOQuery11.SQL.Text:= sss1+sss2+sss3; } // ADOQuery11.SQL.Clear; {ADOQuery11.SQL.Add(sss1); ADOQuery11.ExecSQL; ADOQuery11.SQL.Clear;
ADOQuery11.SQL.Add(sss2);
ADOQuery11.ExecSQL; ADOQuery11.SQL.Clear;
ADOQuery11.SQL.Add(sss3); } // ADOQuerry11.sql ADOQuery11.Active:= True; t2:= time; DecodeTime (T2-T1,Hr,min,sec,msec); label20.Caption:= 'DecodeTime: '+inttostr (msec);
end;
procedure TForm1.FormCreate(Sender: TObject); var f: Textfile; s: string; begin //TabArrival_Obj; //button1.Click(); //TabArrival_Obj;
//inv_num_tec:=1006758; //inv_num_meb:=1006494; //inv_num_invent:=1006410;
AssignFile (f, 'ids.txt'); //открыли файл reset(f); ReadLn(f, s); code_obj:= strtoint (s); label8.Caption:= inttostr (code_obj); // ReadLn(f, s); inv_num_tec:= strtoint (s); label9.Caption:= label9.Caption + inttostr (inv_num_tec); // ReadLn(f, s); inv_num_meb:= strtoint (s); label10.Caption:= label10.Caption + inttostr (inv_num_meb); // ReadLn(f, s); inv_num_invent:= strtoint (s); label11.Caption:= label11.Caption + inttostr (inv_num_invent); // CloseFile (f); Z1:= code_obj; Z2:= code_obj+1000; label13.Caption:= 'Z2 = ' + inttostr(Z2);
////////////// {ADOQuery4.SQL.Text:= 'select count(*) as cnt from INVENTAR'; try ADOQuery4.Open; Label20.Caption:= ADOQuery4.FieldByName('CNT').AsString; finally ADOQuery4.Close; end; } ////////////// { ADOQuery1.SQL.Text:= 'select count(*) as cnt from ARRIVAL_OBJ'; try ADOQuery1.Open; Label20.Caption:= ADOQuery1.FieldByName('CNT').AsString; finally ADOQuery1.Close; end; } /////////////// ///
ADOQuery4.SQL.Text:= 'Select * from [INVENTAR]';
end;
end.
|
|||||||||||||||||||||||
Последнее изменение этой страницы: 2016-04-18; просмотров: 182; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.225.98.39 (0.008 с.) |