( NumSet : Word;
ColName : StringZ;
Value : Byte) : Byte
Sloupec se jménem ColName v tabulce NumSet označí tak, že bude ukládán do databáze i v případě, že nedojde k jeho změně. Sloupec musí být předtím připojen k proměnné makra procedurou SQLBind.
Jestliže bude sloupec existovat a bude správně připojen k proměnné makra, vrací funkce true.
Používají se funkce
Za normálních okolností při update nezměněného sloupce nedojde k jeho vložení do update příkazu, pokud nepoužijete _SQLSetColDirty:
dim DB : Word;
dim Set : Word;
dim S1 : String;
dim S2 : String;
SQLDBOpen(DB, "Test", "", "");
SQLOpen(DB, Set);
SQLBind(Set, "COL1", SQL_VARCHAR, S1);
SQLBind(Set, "COL2", SQL_VARCHAR, S2);
SQLSelect(Set, "TEST_TAB", "IDENT=10", "IDENT");
if _SQLFirst(Set) then
if _SQLEdit(Set) then
S1 := "ABCD";
{ S2 neměníme }
_SQLSetColDirty(Set, "COL2", true);
_SQLUpdate(Set);
endif
endif
SQLClose(Set);
SQLDBClose(DB);
Při vkládání nové řádky, která obsahuje prázdné řetězce, nebudou tyto řetězce ukládány, ale v tabulce po přidání zůstane NULL. To může vadit tam, kde jsou sloupce, které nemohou mít hodnotu NULL. Pak je potřeba použít _SQLSetColDirty:
dim DB : Word;
dim Set : Word;
dim S1 : String;
dim S2 : String;
SQLDBOpen(DB, "Test", "", "");
SQLOpen(DB, Set);
SQLBind(Set, "COL1", SQL_VARCHAR, S1);
SQLBind(Set, "COL2", SQL_VARCHAR, S2);
SQLSelect(Set, "TEST_TAB", "IDENT=-1", "IDENT");
if _SQLAddNew(Set) then
S1 := "ABCD";
S2 := "";
_SQLSetColDirty(Set, "", true);
_SQLUpdate(Set);
endif
SQLClose(Set);
SQLDBClose(DB);
Jestliže zadáte jméno sloupce prázdné, budou jako DIRTY označeny všechny sloupce.
Podívejte se na: SQL makrofunkce