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