Rec_cnt

Internφ programovacφ jazykC/C++Pascal

function Rec_cnt(curs : tcurstab; var recnum : trecnum) : Boolean;
BOOL [cd_]Rec_cnt([cdp_t cdp], tcurstab curs, trecnum * recnum);
function [cd_]Rec_cnt([cdp : cdp_t]; curs : tcurstab; var recnum : trecnum) : Boolean;

Parametry

curs tabulka nebo otev°en² kurzor - viz podrobnosti
recnum vrßcen² poΦet zßznam∙
[cdp kontextovß prom∞nnß klienta]

Popis

Funkce vracφ v parametru recnum poΦet zßznam∙ v kurzoru resp. tabulce curs.

Je-li parametrem curs Φφslo tabulky, vracφ se poΦet vÜech zßznam∙ v tabulce, vΦetn∞ zruÜen²ch a t∞ch uvoln∞n²ch, za nimi₧ jsou jeÜt∞ n∞jakΘ neuvoln∞nΘ zßznamy. Je-li curs Φφslo otev°enΘho kurzoru, vracφ se poΦet zßznam∙ vybran²ch do kurzoru p°i jeho vytvß°enφ, vΦetn∞ t∞ch, kterΘ byly za dobu existence kurzoru zruÜeny, a zßznamy pozd∞ji p°idanΘ. Prvnφ provedenφ Rec_cnt na urΦitou tabulku resp. kurzor m∙₧e chvφli trvat, proto₧e zßznamy se musφ spoΦφtat.

D∙raznΘ upozorn∞nφ: Jednou z nejΦast∞jÜφch chyb zaΦφnajφcφch v²vojß°∙ je opomenutφ, ₧e Rec_cnt na tabulku poΦφtß i smazanΘ a uvoln∞nΘ zßznamy. P°i pokusu Φφst z uvoln∞nΘho zßznamu zφskßvajφ pak (v lepÜφm p°φpad∞) nesmyslnΘ hodnoty. Je proto nutnΘ kontrolovat systΘmov² sloupec DELETED (viz p°φklad).

Hodnota funkce

Funkce vracφ hodnotu FALSE, pokud se akci poda°ilo ·sp∞Ün∞ provΘst. V opaΦnΘm p°φpad∞ vracφ TRUE a povahu chyby lze zjistit volßnφm funkce Signalize.

P°φklad 1

  if not Rec_cnt(TAB1, limit) then 
  for I:=0 to limit-1  do
    if not TAB1[I].deleted then
      Delete( TAB1, i );

P°φklad 2

podm := 'SELECT c_dop,datum,cislo FROM Dop WHERE datum='+poms+' ORDER BY c_dop';
if Open_sql_cursor (c_dat,podm) then Signalize
else begin 
  Rec_cnt(c_dat,pocet);
  if pocet=0 then begin
    spom := 'Nenalezen ani jeden dopis s datem '+poms;
    Info_box('Nelze',spom);
    Close_cursor(c_dat);    
  end
  else ...

Viz