Enum_attributes

c/c++pascal

BOOL [cd_]Enum_attributes([cdp_t cdp], tcurstab curs; enum_attr * callback);
function [cd_]Enum_attributes([cdp : cdp_t]; curs : tcurstab, callback : enum_attr) : Boolean;

Parametry

curs číslo tabulky nebo otevřeného kurzoru
callback instance funkce, která bude zavolána pro každý sloupec
[cdp kontextová proměnná klienta]

Popis

Funkce Enum_attributes projde po řadě všechny sloupce v tabulce nebo kurzoru curs a pro každý z nich zavolá funkci callback. Procházení začíná sloupcem s číslem 1 (včetně případných skrytých sloupců). Jako parametr callback je nutno zavolat instanci funkce typu enum_attr definovaného takto:

typedef BOOL (_stdcall enum_attr)(char * attrname, uns8 attrtype, uns8 attrmult, uns16 attrspecif);
type enum_attr = enum_attr(attrname : PChar;  attrtype, attrmult : uns8;  attrspecif : uns16) : Boolean;  stdcall;

Funkce callback musí mít rozhraní _stdcall.

Parametry, které jsou předány funkci callback jsou významově shodné se stejně pojmenovanými parametry funkce Attribute_info. Pokud funkce callback vrátí hodnotu FALSE, procházení sloupců se ukončí a tato funkce již nebude více volána. Nechcete-li přerušit procházení sloupců, musí funkce callback vracet TRUE.

Funkce je od verze 8.0 zastaralá a je nahrazena funkcí Enum_attributes_ex. Zjistit názvy a typy sloupců v tabulce lze od verze 6.1 také systémovým dotazem _IV_TABLE_COLUMNS.

Hodnota funkce

Funkce Enum_attributes vrátí TRUE, pokud tabulka nebo kurzor curs byl nalezen a funkce callback zavolána alespoň jednou. Funkce Enum_attributes vrátí FALSE, pokud tabulka nebo kurzor zadaná parametrem curs neexistuje.

Příklad

Naplnění listboxu jmény sloupců tabulky:

BOOL _stdcall fill_list_box(char * attrname, uns8 attrtype, uns8 attrmult, uns16 attrspecif)
{ if (attrmult == 1)
    if (SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)attrname) == LB_ERR)
      return FALSE;
  return TRUE;
}

....................
Enum_attributes(tablenum, fill_list_box);

Viz