Текущий архив: 2008.04.20;
Скачать: CL | DM;
Вниз
Пересчет количества строк в таблице Найти похожие ветки
← →
Uno-84 (2008-03-28 09:16) [0]Здравствуйте! Подскажите пожалуйста! Я делаю 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 - не проходит.
Заранее спасибо!
← →
Matveih1 © (2008-03-28 09:19) [1]Выполни сначала Open, а потом присваивай полученное значение переменной
← →
Sergey13 © (2008-03-28 09:23) [2]> 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) [3]
> FildByName - не проходит.
Конечно не пройдет, count - это же не имя поля.
select count(MESSAGE_ID) RecCount from MESSAGE_EXT where ..
..
j := FieldByName("RecCount").AsInteger
← →
Uno-84 (2008-03-28 09:43) [4]Спасибо большое! Помогло!
← →
Ega23 © (2008-03-28 09:50) [5]
> FildByName - не проходит.
> Заранее спасибо!
В твоём случае можно сделать j:=Fileds[0].AsInteger;
Страницы: 1 вся ветка
Текущий архив: 2008.04.20;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.018 c