Показать сообщение отдельно
  #2  
Старый 30.06.2006, 14:02
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Потому что у тебя никогда не закончится второй while, а не закончится он по причине общей кривизны кода

Вообще данный метод нахождения чего либо на мой взгляд слишком тормозной.
Если у тебя в приложении связь с БД настроена через ADOConnection то могу предложить следующее:
Код:
function Get_p_kol_vo(nazv:string):integer;
var
  Q:TADOQuery;
begin
  Q:=TADOQuery.Create(nil);
  with Q do
    begin
      Connection:=ADOConnection1; //если есть, или путь к БД
      SQL.Text:='SELECT SUM([Prihod_Kol-vo]) as PR_SUM FROM Prihod WHERE Prihod_Tovar = :nazv';
      Parameters.ParseSQL(SQL.Text,True);
      Parameters.ParamByName('nazv').Value:=nazv;
      Open;
      Result:=FieldByName('PR_SUM').AsInteger;
      Close;
    end;
  Q.Free;
end;

пример вызова:
Код:
Get_p_kol_vo(DataModule1.ADOTableTovars.FieldByName('tovars_naz v_id').AsString)

ЗЫЖ Желательно еще прикрутить обработку ошибок
ЗЗЫЖ Набирал прямо в explorer'е поэтому за синтаксис не ручаюсь
Ответить с цитированием