|
Вопрос # 2 298/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
помогите правильно организовать алгоритм ... а то у меня отображает только последнюю найденную запись :(
я делаю так:
я пвтаюсь найти все записи в таблице где нет даты рассмотрения дела...
(DataRassm) такое странное сравнение потому что если сохраняю данные с пустым maskedit для значения DataRassm у меня сохраняет 30.12.1899 так что если кто знает как и это исправить до большое спасибо от меня
Приложение: Переключить в обычный режим- ADOQuery1.Close;
- ADOQuery1.SQL.Clear;
- ADOQuery1.SQL.add('SELECT ZamechIPredlaz.DataRassm, ZamechIPredlaz.nomer FROM ZamechIPredlaz');
- ADOQuery1.open;
-
- ADOQuery1.First;
- while not ADOQuery12.Eof do
- begin
- if ((ADOQuery12.Fields.Fields[0].AsString ='') or (ADOQuery12.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 ;
 |
Вопрос задала: Танюшка (статус: Посетитель)
Вопрос отправлен: 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]:
Да, конечно же, условия отбора на уровне запроса гораздо эффективнее перебора "сырого" запроса в цикле.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|