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

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

Подсчет количества записей [D5, IB6.x]


Malder ©   (2002-03-16 13:55:00) 

как подсчитать количество записей в таблице, где поле такое-то равно тому-то ? То есть это типа:


SELECT count(*) From Table1 where Pole1="test"

Но мне надо записать это значение в какую-нибудь переменную, чтоб потом с ним работать. А также это надо реализовать на стороне СЕРВЕРА, а не клиента


Malder   (2002-03-16 15:21:00) [1]

dymka, спасибо !


dymka   (2002-03-16 15:17:00) [2]

Обязательно нужно юзать SET TERM

SET TERM ^ ;

CREATE TRIGGER CheckTelefonInsert FOR Manager_view
BEFORE INSERT POSITION 1
AS
DECLARE VARIABLE RecordCount integer;
BEGIN
select count(*) from Pers where Telefon=new.telefon into :RecordCount;
if (RecordCount<>0) then exception TestException;
END^

SET TERM ; ^


Malder   (2002-03-16 14:44:00) [3]

Выполняю такую вещь в ISQL:

CREATE TRIGGER CheckTelefonInsert FOR Manager_view
BEFORE INSERT POSITION 1
AS
DECLARE VARIABLE RecordCount integer;
BEGIN
select count(*) from Pers where Telefon=new.telefon into :RecordCount;
if i<>0 then exception TestException;
END

Не получается - пишет:

Unexpected end of command

Я знаю что там можно SET TERM ^;делать, но почему то не получается никак.
Раньше, если тело было в одну строчку, то я просто ставил ;;
То есть, если б не было if i<>0 then exception TestException;, то можно было бы написать select count(*) from Pers where Telefon=new.telefon into :RecordCount;;

Как преоброзовать кол, чтобы он в ISQL выполнился ?


dymka   (2002-03-16 14:15:00) [4]

Перед использованием на стороне сервера (процедура или триггер) вызывай свой код, типа
...
declare variable recordcount integer;
...
select count(*) from table1 where pole1="test" into :recordcount;
...
и здесь мучай ее на здоровье :)


Наверх

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