Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Вопрос по Sql и ADO(база данных ACCESS)

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных
Предыдущая тема :: Следующая тема  
Автор Сообщение
HIMN



Зарегистрирован: 17.04.2006
Сообщения: 17

СообщениеДобавлено: Пт Апр 21 2006 17:16    Заголовок сообщения: Вопрос по Sql и ADO(база данных ACCESS) Ответить с цитатой

Мне нужно заполнить MAC адреса в таблице компов, а у меня после выборки можно записать только MAC только первого компа из выборки. Подскажите где ошибка?

Код вот такой
Код:

procedure TForm1.Button1Click(Sender: TObject);
var
  SR: TSearchRec; // поисковая переменная
  FindRes: Integer; // переменная для записи результата поиска
  F: TextFile;
  S,name: string;
  i: integer;
  Info: array of string;
begin
  // задание условий поиска и начало поиска

  FindRes := FindFirst('Date\*.*', faArchive , SR);
  while FindRes = 0 do
     begin
         //проверяем существование конфигурации
         QR1.SQL.Clear;
         QR1.SQL.Append('SELECT name_cfg FROM KONFIG where name_cfg="'+SR.Name+'";');
         QR1.Active:=true;
         //если выборка пуста,т.е. нет конфигурации, то добавляем запись
         if qr1.Eof then       adoconnection1.Execute('insert into konfig(name_cfg) values ("'+SR.Name+'")');
         //делаем выборку, чтобы выяснить Id конфигурации
         QR1.SQL.Clear;
         QR1.SQL.Append('SELECT id_cfg FROM KONFIG where name_cfg="'+SR.Name+'";');
         QR1.Active:=true;
         {или SELECT computers.id_cfg, KONFIG.id_cfg, konfig.name_cfg FROM KONFIG INNER JOIN computers ON KONFIG.id_cfg=computers.id_cfg;}

         //проверяем наличие в таблице компьютеров существование Конфигурации с Id
         i:= qr1.FieldValues['id_cfg'];
         QR1.SQL.Clear;
         QR1.SQL.Append('SELECT id_cfg FROM computers where id_cfg='+inttostr(i)+';');
         QR1.Active:=true;
         //если номера конфигурации нет добавляем
        if qr1.Eof then   adoconnection1.Execute('insert into computers(id_cfg) values ('+inttostr(i)+')');

         FindRes := FindNext(SR); // продолжение поиска по заданным условиям
      end;
   FindClose(SR); // закрываем поиск


  // выборка имён конфигураии, названия конфигурации из табл конфигураций и ид_конфиг из табл компьютеров
   QR1.SQL.Clear;
   QR1.SQL.Append('SELECT computers.id_comp,computers.id_cfg, KONFIG.id_cfg, konfig.name_cfg FROM KONFIG INNER JOIN computers ON KONFIG.id_cfg=computers.id_cfg');
   QR1.Active:=true;
   qr1.First;

   if not qr1.Eof then
     begin

         name:=qr1.FieldValues['name_cfg'];
         form1.Caption:=name;
       //  exit;
         AssignFile(F,'date\'+name);
         reset(F);
         s:='';

       //проход по файлу конфигурации
        while not eof(f) do
          begin
             s:='';
             readln(F,s); //считываем строку
             if pos('MAC_Addr=',s)>0 then
                  begin
                     name:=copy(s,(pos('=',s)+1),length(s));
                     i:=qr1.FieldValues['id_comp'];
                  //??????????????????????????????????????????????????????????
                                     adoconnection1.Execute('UPDATE computers SET [mac]="'+name+'" where ([id_comp]='+inttostr(i)+')');

                   end;
            end;
           qr1.Next;
        end;
end;
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
HIMN



Зарегистрирован: 17.04.2006
Сообщения: 17

СообщениеДобавлено: Пт Апр 21 2006 17:32    Заголовок сообщения: Ответить с цитатой

Вопрос заключается в том, что переход на следующую запись из результата запроса не происходит. В самом последнем цикле где ошибка?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...