1. Popis datových typů pro čtení a zápis

    Článek: AN0001599Aktualizováno:: 20.10.2018

    Tabulka níže zobrazuje seznam datových typů pro čtení a zápis z objektu DataRow pro jednotlivé typy sloupců. Pro zápis hodnot je možné použít více datových typů podle toho, co máte momentálně k dispozici.

    Příklad pro čtení hodnot:

    var value = dr['kod_sloupce'];

    Příklad pro zápis hodnot:

    dr['kod_sloupce'] = value;

    Typ sloupce Čtení hodnot Zápis hodnot
    Text string string
    Celé číslo int?

    int?

    double?

    Desetinné číslo double? double?
    Příznak Pravda/Nepravda bool? bool?
    Datum DateTime? DateTime?
    Barva int?

    int?

    double

    Color

    Odkaz na třídu int? int?
    Guid Guid? Guid?
    Soubor soubory nelze takto načítat soubory nelze takto ukládat
    Obrázek na serveru string string
    Číselníková hodnota - jednoduchý na třídu (Classlink) int?

    int?

    double

    DataRow

    Person

    string - hodnota se konvertuje na celé číslo a představuje ID referencovaného záznamu

    Číselníková hodnota - násobný na třídu (Classlink) EntityInfoList EntityInfoList
    Číselníková hodnota - jednoduchý na uživatele PersonInfo PersonInfo
    Číselníková hodnota - násobný na uživatele PersonInfoList PersonInfoList
    Číselníková hodnota - jednoduchý na více tříd (XClasslink) EntityInfo EntityInfo
    Číselníková hodnota - násobný na více tříd (XClasslink) EntityInfoList EntityInfoList

    Otazník za typem říká, že sloupec může být prázdný (může obsahovat NULL hodnotu).

    Typ sloupce Číselníková hodnota

    Při čtení hodnoty z násobného odkazu je i při prázdném sloupci VŽDY vrácena instance kolekce EntityInfoList nebo PersonInfoList.

    Pro Classlink je v EntityInfo v hodnotě Id id referencovaného záznamu.

    Pro XClasslink je v EntityInfo v hodnotě Id id referencovaného záznamu a v ParentId id cílové třídy.

    Pro odkaz na uživatele je v PersonInfo v hodnotě Id id uživatele a v DisplayName úplné jméno uživatele.

    Práce s násobnými odkazy

    Kolekce můžete procházet pomocí cyklu FOR.

    var linky = dr['nasobny sloupec'];
    for( var i = 0; i < linky.Count; ++i)
    {
      var id = linky[i].Id;
      var text = linky[i].DisplayName;
    }

    Entitu v kolekci můžete najít pomocí metody GetById( int id).

    var link = linky.GetById(100);   //100 je zde ID záznamu

    Mazat link můžete některou z metod Remove...:

    RemoveById(int id, bool duplicityId)
    linky.RemoveById(100, true);

    Parametr duplicityId nastavte na true, pokud může být v kolekci duplicitní výskyt jednoho ID. Jinak použijte false.


    RemoveAt(int index)

    linky.RemoveAt(3);    //smaze item na pozici 3

    Remove(item)

    linky.Remove( linky[1]);   //smaze item na pozici 1

    Po přidání nebo odstranění reference je třeba daný dr (záznam DataRow) uložit, např.:

    OG.DataRow.SaveData(dr);

    Touto funkcí lze uložit kolekci záznamů DataRow a to jako celek v jedné transakci nebo jednotlivě.

    OG.DataRow.SaveData(DataRowList dataRowList, bool allInTransaction);

    Funkcí List GetIds() získáte seznam ID v dané kolekci. Ty lze použít v jiných funkcích.

    var ids = linky.GetIds();

     

    Další funkce pro EntityInfoList a PersonInfoList.
    int GetMaxId() - získá MAX ID v kolekci
    int GetMinId() - získá MIN ID v kolekci
    bool IsAnyItemNull() - funkce vrátí true, pokud je některá položka v kolekci null. Jinak je vráceno false.
    int Count - počet položek v kolekci

     

    Kolekce PersonInfoList má ještě funkci bool Contains(int personId), která zjistí, zda je v kolekci uživatel zadaného ID.

    var exist = dr['osoby'].Contains(100);    //vráti true, pokud je v násobném sloupci osoby uživatel s ID 100

     

    Pro získání plných objektů DataRow z jednoduchého nebo násobného sloupce použijte funkci GetDR.

    var drLinky = dr.GetDR('nasobny sloupec');

    Systémové sloupce

    Systémové sloupce je možné jen číst. Plní se automaticky systémem.

    Sloupec Čtení hodnot
    Id int
    Creator string
    Created DateTime?
    Modified DateTime?
    Modifier string
    Deleted DateTime?
    Deleter string
    ShortDescription string
    CreatedDataSourceId int?
    ModifiedDataSourceId int?
    DeletedDataSourceId int?

    Otazník za typem říká, že sloupec může být prázdný (může obsahovat NULL hodnotu).

×