Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 28.02.2007, 19:47   #1
doncova1
Пользователь
 
Регистрация: 19.11.2006
Сообщений: 42
Смех чем может быть вызвана ошибка при использовании AdoQuery1.FindNext

чем может быть вызвана ошибка "Either BOF or EOF is true, or the current record has been deleted. Requested operation requires a current record" при выполнении кода
if i=1 then begin
s:=#39;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('SELECT * from Clienti where FIO='+s+Edit1.text+s );
adoquery1.Active:=true;


if AdoQuery1.RecordCount>0 then
begin
if i=1 then AdoQuery1.FindFirst;
i:=0;
i:=AdoQuery1.FieldValues['Count'];
while AdoQuery1.FindNext do
i:= i+AdoQuery1.FieldValues['Count'];

end;

Последний раз редактировалось doncova1; 28.02.2007 в 21:28.
doncova1 вне форума   Ответить с цитированием
Старый 01.03.2007, 06:19   #2
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Переменная s типа char, насколько я понимаю, а 39 символ по ASCII, насколько мне не изменяет память, не имеет прописного значения - наверняка именно здесь и есть ошибка.
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума   Ответить с цитированием
Старый 01.03.2007, 10:21   #3
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Requested operation requires a current record
Ошибка работы с базой данных.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума   Ответить с цитированием
Старый 01.03.2007, 10:27   #4
doncova1
Пользователь
 
Регистрация: 19.11.2006
Сообщений: 42
По умолчанию

вообще s это строка, а 39 это ковычка , но часть кода
if i=1 then begin
s:=#39;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('SELECT * from Clienti where FIO='+s+Edit1.text+s );
adoquery1.Active:=true;


прекрасно работает без остального текста
doncova1 вне форума   Ответить с цитированием
Старый 01.03.2007, 10:51   #5
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Смотрите выше. ошибка работы с базой данных.
ошибку , что логично, вызывает часть кода

:=AdoQuery1.FieldValues['Count'];
while AdoQuery1.FindNext do
i:= i+AdoQuery1.FieldValues['Count'];
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума   Ответить с цитированием
Старый 01.03.2007, 12:15   #6
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Цитата:
Сообщение от doncova1 Посмотреть сообщение
вообще s это строка, а 39 это ковычка
Тогда к чему примудрости? Как я понимаю, значение строковому параметру присваивается только из-за ковычки!!? И все это ради вот такого куска кода:
Код:
adoquery1.SQL.Add('SELECT * from Clienti where FIO='+s+Edit1.text+s );
Возможно я что-то не понимаю, но по-моему так будет немного оптимальнее:
Код:
adoquery1.SQL.Add('SELECT * from Clienti where FIO='''+Edit1.text+'''');
Причем строку можно и не объявлять...
Цитата:
Сообщение от doncova1 Посмотреть сообщение
...а 39 это ковычка , но часть кода
...
прекрасно работает без остального текста
Прошу прощения великодушно - код не проверял ибо писал с телефона, а компьютера с Delphi под рукой не оказалось. Действительно 39 это ковычка, просто глубоко в памяти (еще с паскаля) засели цифры 37, 38, 39, 40 - коды стрелочек на клавиатуре, а то, что у них символы есть, я как-то вдруг позабыл.

И все-таки к делу... Между запросом и подсчетом суммы есть еще какой-нибудь код? По ошибке понятно, что процедура обращается к несуществующей записи: на каком шаге она возникает?
Познавая других, мы познаем себя.
С'est la vie...

Последний раз редактировалось SuperVisor; 01.03.2007 в 12:37.
SuperVisor вне форума   Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Память не может быть "read" Alewteena Безопасность, Шифрование 3 27.08.2008 05:16
Из какой ячейки вызвана функция? ALink Microsoft Office Excel 7 13.05.2008 00:59
Как быть? Mitron Свободное общение 8 11.03.2008 21:01
Материнка не видит винт PATA, в чем может быть глюк? Stilet Железо 4 09.01.2008 11:12