Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 298

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
помогите правильно организовать алгоритм ... а то у меня отображает только последнюю найденную запись :(
я делаю так:

я пвтаюсь найти все записи в таблице где нет даты рассмотрения дела...
(DataRassm) такое странное сравнение потому что если сохраняю данные с пустым maskedit для значения DataRassm у меня сохраняет 30.12.1899 так что если кто знает как и это исправить до большое спасибо от меня

Приложение:
  1. ADOQuery1.Close;
  2. ADOQuery1.SQL.Clear;
  3. ADOQuery1.SQL.add('SELECT ZamechIPredlaz.DataRassm, ZamechIPredlaz.nomer FROM ZamechIPredlaz');
  4. ADOQuery1.open;
  5.  
  6. ADOQuery1.First;
  7. while not ADOQuery12.Eof do
  8. begin
  9. if ((ADOQuery12.Fields.Fields[0].AsString ='') or (ADOQuery12.Fields.Fields[0].AsString ='30.12.1899') )
  10. then
  11. begin
  12. ADOQuery2.Close;
  13. ADOQuery2.SQL.Clear;
  14. ADOQuery2.SQL.add('select * from ZamechIPredlaz where nomer='+ADOQuery1.Fields.Fields[1].AsString+'');
  15. ADOQuery2.open;
  16.  
  17. end ;
  18. ADOQuery1.Next;
  19.  
  20. end ;


Танюшка Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: Танюшка (статус: Посетитель)
Вопрос отправлен: 12 января 2009, 10:42
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 7; последнее сообщение — 13 января 2009, 18:15; участников в обсуждении: 3.
Шичко Игорь

Шичко Игорь (статус: 9-ый класс), 12 января 2009, 11:03 [#1]:

А почему ищете в ADOQuery1 а перебор по ADOQuery12
...ADOQuery1.First;
while not ADOQuery12.Eof do...
Танюшка

Танюшка (статус: Посетитель), 12 января 2009, 11:07 [#2]:

опечатка в вопросе ...
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.add('SELECT ZamechIPredlaz.DataRassm, ZamechIPredlaz.nomer FROM ZamechIPredlaz');
ADOQuery1.open;

ADOQuery1.First;
while not ADOQuery1.Eof do
begin
if ((ADOQuery1.Fields.Fields[0].AsString ='') or (ADOQuery1.Fields.Fields[0].AsString ='30.12.1899') )
then
begin
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.add('select * from ZamechIPredlaz where nomer='+ADOQuery1.Fields.Fields[1].AsString+'');
ADOQuery2.open;

end ;
ADOQuery1.Next;

end ;
вот как то так
но тут не дело в чем я ищк а дело как правильно искать чтобы все данные отобразились какие нашлись по выборке..
а у меня только последняя найденная запись выводиться
Шичко Игорь

Шичко Игорь (статус: 9-ый класс), 12 января 2009, 11:17 [#3]:

Так Вы все время обновляете ADOQuery2.
Надо где-то так:
ADOQuery2.SQL.add('select * from ZamechIPredlaz where nomer='+ADOQuery1.Fields.Fields[1].AsString+'');
ADOQuery2.open;
Процедура вывода данных из ADOQuery2...
end ;
ADOQuery1.Next;

И ещё совет
ADOQuery1.Fields.Fields[0].AsString
если у Вас Fields[0] поле даты, то я использую обычно:
if АDOQuery1.Fields.Fields[0].AsDateTime < 20000 then ...
Танюшка

Танюшка (статус: Посетитель), 12 января 2009, 11:49 [#4]:

процедура вывода данных....
какая например если данные отображаются в гриде связанным DataSource1.dataset = ADOQuery1
????
Шичко Игорь

Шичко Игорь (статус: 9-ый класс), 12 января 2009, 12:05 [#5]:

Так в Запросе ADOQuery1 у Вас нет никакого условия для даты (точнее для её отсутствия).
Тогда нужно попробовать где-то так:
ADOQuery1.SQL.add('SELECT ZamechIPredlaz.DataRassm, ZamechIPredlaz.nomer FROM ZamechIPredlaz where [поле даты] is Null')
Танюшка

Танюшка (статус: Посетитель), 12 января 2009, 14:05 [#6]:

спасибо игорь!!!!! я просто недодумалась что можно сравнивать поле как Null!!!! все получилось даже с 1 запросом без циклов
Косолапов Дмитрий Юрьевич

Косолапов Дмитрий Юрьевич (статус: 8-ой класс), 13 января 2009, 18:15 [#7]:

Да, конечно же, условия отбора на уровне запроса гораздо эффективнее перебора "сырого" запроса в цикле.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:38
Выполнено за 0.03 сек.