Чтобы предотвратить отображение результата, просто укажите цель для результата.«в массив» или «в курсор» подойдут.
Согласно вашему текущему коду, вас не интересуют возвращаемые строки, поэтому вы можете просто получить счетчик (у вас также была опечатка вкод).то есть:
procedure checkForBadRecord
local array laBadCount[1]
select count(*) ;
from table_x ;
where field_x = "thing used to determine it's bad" ;
into array laBadCount
use in (select('table_x'))
if laBadCount[1] > 0 then
messagebox("Check the table for errors!")
endif
endproc
Возможно, вместо написания такой процедуры вы захотите написать эту процедуру для более общего использования:
if checkForBadRecord('table_x', 'field_x', "thing used to determine it's bad")
messagebox("Check the table table_x for errors!")
endif
procedure checkForBadRecord(tcTableName, tcFieldToCheck, tuValueToCheck)
local array laBadCount[1]
select count(*) ;
from &tcTableName ;
where &tcFieldToCheck = m.tuValueToCheck ;
into array laBadCount
use in (select(m.tcTableName))
return laBadCount[1] > 0
endproc
Примечание: вы можете использовать "To Screen" какхорошо, чтобы подавить результаты и получить счет через _Tally.т.е.:
procedure checkForBadRecord
set console OFF
select * ;
from table_x ;
where field_x = "thing used to determine it's bad" ;
to SCREEN
set console ON
use in (select('table_x'))
if _Tally > 0 then
messagebox("Check the table for errors!")
endif
endproc