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

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

Пересчет количества строк в таблице [D7, XP]


Uno-84 ©   (2008-03-28 09:16:00) 

Здравствуйте! Подскажите пожалуйста! Я делаю SQL запрос на пересчет количества строк в таблице, мне нужно полученное значение задать как параметр, каким образом это сделать вот код:

with DataModule1.IBQShared do begin
         SQL.Clear;
         SQL.Add('select count(MESSAGE_ID) from MESSAGE_EXT where    MESSAGE_RECIPIENTS_NAMES = :MESSAGE_RECIPIENTS_NAMES');
         ParamByName('MESSAGE_RECIPIENTS_NAMES').AsString := USER_NAME_TCS;
         j := FieldByName('Count').AsInteger;
         Open;

FildByName - не проходит.
Заранее спасибо!


Ega23   (2008-03-28 09:50:00) [1]


> FildByName - не проходит.
> Заранее спасибо!


В твоём случае можно сделать j:=Fileds[0].AsInteger;


Uno-84   (2008-03-28 09:43:00) [2]

Спасибо большое! Помогло!


Sergey13   (2008-03-28 09:23:00) [3]

> FildByName - не проходит.

Почему? Подходит прекрасно.

with DataModule1.IBQShared do begin
        SQL.Text:='select count(MESSAGE_ID) as Field_Count from MESSAGE_EXT where    MESSAGE_RECIPIENTS_NAMES = :MESSAGE_RECIPIENTS_NAMES';
        ParamByName('MESSAGE_RECIPIENTS_NAMES').AsString := USER_NAME_TCS;
        Open;
        j := FieldByName('Field_Count').AsInteger;


1. Именование агрегатных полей желательно делать явно. As возможно лишнее - зависит от субд.
2. Сначала открыть датасет, потом прочитать значение.


Сергей М.   (2008-03-28 09:23:00) [4]


> FildByName - не проходит.


Конечно не пройдет, count - это же не имя поля.

select count(MESSAGE_ID) RecCountfrom MESSAGE_EXT where ..
..
j := FieldByName(' RecCount').AsInteger


Matveih1   (2008-03-28 09:19:00) [5]

Выполни сначала Open, а потом присваивай полученное значение переменной


Наверх

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