![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подсчет количества записей [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;
...
и здесь мучай ее на здоровье :)