HIMN
Зарегистрирован: 17.04.2006 Сообщения: 17
|
Добавлено: Вс Май 21 2006 11:02 Заголовок сообщения: Еужна блок-схема к процедуре |
|
|
Ладно как может выгдядеть блок схема для такого кода(wirg@rambler.ru)???
begin
//задание условий поиска конфигураций
FindRes:=FindFirst('date\*.*',faArchive,SR);
Form1.Caption:='загрузка конфигураций';
while FindRes=0 do // пока мы находим файлы, то выполнять цикл
begin
//подключаемся к БД
ADOConnection1.Connected:=false;
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DIAL.mdb;Persist Security Info=False';
qr1.Connection:=adoconnection1;
qr2.Connection:=adoconnection1;
//проверяем существование конфигурации
qr1.SQL.Clear;
qr1.SQL.Append('Select ID_cfg, Name_cfg From Config where Name_cfg="'+SR.Name+'"');
qr1.Active:=true;
//Если выборка пуста, то добавляем конфигурацию
if qr1.Eof then
begin
ADOConnection1.Execute('Insert Into Config(Name_cfg,Date_create) values ("'+SR.Name+'",Date())');
//находим и записываем конфигурацию
qr1.SQL.Clear;
qr1.SQL.Append('Select ID_cfg From Config where Name_cfg="'+SR.Name+'"');
qr1.Active:=true;
end;
cfg:=inttostr(qr1.FieldValues['ID_cfg']);
//делаем выборку из таблиц конфигурации и компьютеров
qr1.SQL.Clear;
qr1.SQL.Append('Select ID_comp From Computers Where ID_cfg='+cfg+'');
qr1.Active:=true;
//если нет компьютера с такой конфигурацией добавляем его
if qr1.Eof then
begin
ADOConnection1.Execute('Insert Into Computers(ID_cfg) values ('+cfg+')');
qr1.SQL.Clear;
qr1.SQL.Append('Select Computers.ID_comp, Config.ID_cfg, Config.Name_cfg From Computers INNER JOIN Config ON Computers.ID_cfg=Config.ID_cfg Where Computers.ID_cfg='+cfg+'');
qr1.Active:=true;
//записываем идентификатор нового компа
comp:=inttostr(qr1.FieldValues['ID_comp']);
//записываем название компа
name:=qr1.FieldValues['Name_cfg'];
cfg:=inttostr(qr1.FieldValues['ID_cfg']);
while not qr1.Eof do
begin
//связываем файловую переменную с именем файла
AssignFile(F,'date\'+name);
//открываем файл
reset(F);
while not eof(f) do //проход по файлу конфигурации
begin
readln(F,S); //считываем строку
//запись устройств
if (pos('Device_',s)=1) or (pos('CPU=',s)=1) or (pos('Win_Device',s)=1) then {процедура добавления устройтсва}
ADDDevice(s);
end;
closefile(F);
qr1.Next;
end;
end;
// продолжение поиска по заданным условиям
FindRes:=FindNext(SR);
end;
FindClose(SR); // закрываем поиск
//заносим производителей вызовом процедурой
ADDProizvoditel;
FormCreate(sender);
end; |
|