Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выбока максимального значения поля


Вика2 ©   (2004-08-19 11:50:00) 

Подскажите плиз как можно программно без использования SQL выбрать максимальное значение поля (тип дата) ?
Thanx...


Вика2   (2004-08-19 14:39:00) [1]

2 Соловьев ©
Запрос получился:


SELECT count(idcard) AS numCards, status AS nameStatus
FROM cards
GROUP BY status;

В Access все нормально работает, возрращает все как надо, попробовала этот же запрос в Delph'e: выдается ошибка:
...Exception class EAccessViolation with message 'Access violation at adress 1Bxxxx in module msjet40.dll' Read of adress ...
???


Соловьев   (2004-08-19 13:54:00) [2]

можно, групировка для этого есть.


Вика2   (2004-08-19 13:53:00) [3]

вобщем понятно, спасибо, я сделала это с помощью SQL'я. Подскажите плиз, если например из одной таблицы надо выудить несколько значений, как-то:
1. Число доступных карт
2. Число активированных карт
3. Число заблокированных карт

Это надо 3 запроса делать? или можно как-нибудь в одном? :((


}{ander   (2004-08-19 13:18:00) [4]


> surkis   (19.08.04 12:30) [12]
> Факт в том что моя схема меня не разу не подводила потому для меня не разницы
> я пишу и так и так


А ты попробуй использовать с этой "схемой" TIBDataSet и увидишь, что получится - если не сделать предварительно FetchAll, то будет еще хороше, если твой цикл выполнится хотя бы раз, не смотря на то, что в выборке может быть туча записей ;-)


Кщд   (2004-08-19 13:10:00) [5]

if MaxDate<Query.FieldByName('Date').asDateTime then
begin
...
Query.Next;
end
else Query.Next;


Ильш   (2004-08-19 12:35:00) [6]


> Факт в том что моя схема меня не разу не подводила потому
> для меня не разницы я пишу и так и так

можно правой ного почесать левое ухо
никто не говорит что нельзя
но удобно ли????


surkis   (2004-08-19 12:30:00) [7]

> Соловьев ©   (19.08.04 12:24) [10]
> да потому... прочти про свойство датасета BOF и EOF

Спасибо за совет, свойства я такие знаю. Факт в том что моя схема меня не разу не подводила потому для меня не разницы я пишу и так и так


Ильш   (2004-08-19 12:25:00) [8]

ghbvth в С++ (с Дельфями давно не общался просто)
for (Table->First();Table->Eof;Table->Next())
{
....и погнали максимум искати :))))
}


Соловьев   (2004-08-19 12:24:00) [9]

да потому... прочти про свойство датасета BOF и EOF


surkis   (2004-08-19 12:16:00) [10]

> > for i:=1 to Query.RecordCount do
> да и это потенциальная ошибка.

это почему?


Соловьев   (2004-08-19 12:15:00) [11]


> NumOfRec:=Query.RecNo;

А это вообще застрелится.


Соловьев   (2004-08-19 12:14:00) [12]


> for i:=1 to Query.RecordCount do

да и это потенциальная ошибка.


surkis   (2004-08-19 12:12:00) [13]

> > Query.
> Я бы понял если бы это была Table, но если запрос... ужас.

Может у неё и Table я по привычке написал Query


Ильш   (2004-08-19 12:10:00) [14]

забавно
если человек не может даже просто найти максимальное в неком массиве
на уроках информатики такое по моему проходят


Соловьев   (2004-08-19 12:10:00) [15]


> Query.

Я бы понял если бы это была Table, но если запрос... ужас.


surkis   (2004-08-19 12:06:00) [16]

> программно без использования SQL

думаю имеется уже готовый датасет и нужно найти запись с максимальным значением даты, тогда

var
 NumOfRec:Integer;
 MaxDate:TDateTime;
...
begin
...
Query.First;
MaxDate:=Query.FieldByName('Date').asDateTime;
NumOfRec:=Query.RecNo;
for i:=1 to Query.RecordCount do
 begin
   if MaxDate<Query.FieldByName('Date').asDateTime then
    begin
      MaxDate:=Query.FieldByName('Date').asDateTime;
      NumOfRec:=Query.RecNo;
      Query.Next;
    end;
   else Query.Next;
 end;
Query.RecNo:=NumOfRec;
...
end;


Соловьев   (2004-08-19 11:58:00) [17]


> как можно программно без использования SQL

зачем? с помощью скл это быстрее и правельнее


Ильш   (2004-08-19 11:58:00) [18]

перебором как же еще
тока без SQL это изврат конкретный


Наверх

Титульная страница Поиск, карта сайта Написать письмо