Բովանդակություն

Ներածություն

Տվյալների պահոցից աղյուսակային տեսքով տվյալներ կարդալու և ցույց տալու համար նկարագրվում է տվյալների աղբյուր։

8X համակարգում տվյալների աղբյուր նկարագրելու համար հարկավոր է ունենալ

  • .as ընդլայնմամբ ֆայլ սկրիպտերում DATA նկարագրությամբ։ Այն անհրաժեշտ է ներմուծել տվյալների բազա Syscon գործիքի միջոցով։
  • .cs ընդլայնմամբ ֆայլ, որը պարունակում է սերվերում աշխատող տրամաբանությունը։

Օրինակներ

DATA նկարագրություն

DATA {
  NAME = ...;
  CAPTION = ...;
  ECAPTION = ...;
  PROCESSINGMODE = ...;
};

Հատկություններ

NAME

Տվյալների աղբյուրի ներքին անունը։ Առավելագույնը 8 Նիշ։

CAPTION

Տվյալների աղբյուրի հայերեն անվանումը ANSI կոդավորմամբ։

ECAPTION

Տվյալների աղբյուրի անգլերեն անվանումը։

PROCESSINGMODE

Տվյալների աղբյուրի կատարման ռեժիմը։ Հարկավոր է տալ 1 արժեք տվյալների աղբյուրը 8X սերվիս ռեժիմով աշխատացնելու համար։

DataSource դաս

Տվյալների աղբյուրի համար անհրաժեշտ է սահմանել դաս, որը ունի տվյալների աղբյուրի ներքին անունը պարունակող DataSource ատրիբուտը և ժառանգում է DataSource<R, P> դասը՝ որպես R փոխանցելով տվյալների աղբյուրի տող նկարագրող դասը, իսկ որպես P՝ պարամետրերը նկարագրող դասը։ Եթե տվյալների աղբյուրը չի պարունակում պարամետրեր, ապա որպես P անհրաժեշտ է փոխանցել NoParam դասը։

Օրինակ

[DataSource("DocSets")]
public class DocumentSettings : DataSource<DocumentSettings.DataRow, DocumentSettings.Param>

Ոչ վիրտուալ հատկություններ

ArmenianCaption

public string ArmenianCaption { get; }

Վերադարձնում է տվյալների աղբյուրի հայերեն անվանումը ANSI կոդավորմամբ:

EnglishCaption

public string EnglishCaption { get; }

Վերադարձնում է տվյալների աղբյուրի անգլերեն անվանումը:

Name

public string Name { get; }

Վերադարձնում է տվյալների աղբյուրի ներքին անունը:

Progress

public DataSourceExecutionProgress Progress { get; }

Վերադարձնում է տվյալների աղբյուրի կատարման պրոգրեսը:

Այս օբյեկտի միջոցով հնարավոր է կառավարել UI-ում ցույց տրվող փուլերը:

QueryTimeOut

public int QueryTimeOut { get; set; }

Վերադարձնում կամ արժեքավորում է տվյալների աղբյուրի MakeSqlCommand-ում ձևավորված հարցման կատարման առավելագույն ժամանակը (վայրկյաններով): Համապատասխանում է DATA նկարագրություն QueryTimeout հատկությանը։

Rows

protected List<R> Rows { get; set; }

Հաշվարկվող տվյալների աղբյուրի տողերի ցուցակը։

Տե՛ս տողերի ավելացման օրինակը։

Schema

public Schema Schema { get; protected set; }

Տվյալների աղբյուրի սխեման, որը պարունակում է ինֆորմացիա տվյալների աղբյուրի սյուների ու պարամետրերի հատկությունների մասին։

Այն ձևավորվում է կոնստրուկտորում։ Տ՛ես օրինակը։

Վիտուալ հատկություններ

AfterDataReaderCloseMode

public virtual CallMode AfterDataReaderCloseMode
{
    get { return CallMode.None; }
}

AfterDataReaderClose-ի աշխատանքի երկու տարբերակ կա կախված այս հատկության արժեքից՝

  • Ամեն տողի համար առանձին կանչ,
  • Մեկ կանչ բոլոր տողերի մշակման համար։

Տե՛ս օրինակը։

CommandBehaviorFlag

protected virtual CommandBehavior CommandBehaviorFlag
{
   get { return CommandBehavior.Default; }
}

Այս հատկության միջոցով ձևավորվում է MakeSqlCommand-ում ձևավորված հարցման ExecuteReaderAsync-ի մեթոդով կատարման ժամանակ behavior պարամետրի արժեքը։

IsSQLBased

public virtual bool IsSQLBased
{
    get { return true; }
}

Տվյալների աղբյուրը ըստ տվյալների բեռնման աղբյուրի լինում է 2 տեսակի՝

  • sql-based (տվյալները ստացվում են տվյալների բազայից՝ sql հարցման միջոցով),
  • array-based (տվյալները ստացվում են այլ աղբյուրներից և ավելացվում տվյալների աղբյուրի տողերի զանգվածին):

Տեսակը որոշվում է այս հատկության միջոցով, որի լռությամբ արժեքը true է։

IsUpdatable

public virtual bool IsUpdatable
{
    get { return false; }
}

Sql-based տվյալների աղբյուրում նոր տող ավելացնելու, ջնջելու կամ թարմացնելու հնարավորությունը ապահովելու համար անհրաժեշտ է գերբեռնել այս հատկությունը՝ վերադարձնելով true արժեք և MakeSQLCommand մեթոդի args պարամետրի IsUpdate հատկության true արժեքի դեպքում ձևավորվող sql հարցման տեքստում ավելացնել ֆիլտրում ըստ տվյալների աղբյուրի տողի նույննականացուցիչի՝ args.ISN։ Սովորաբար տողի նույննականացուցիչ հանդիսանում է փաստաթղթի ISN, բայց կարող է նաև լինել այլ արժեք։

SupportPrepareExecutionPhase

public virtual bool SupportPrepareExecutionPhase
{
   get { return false; }
}

Ցույց է տալիս տվյալների աղբյուրի պրոգրեսով կատարումը սատարում է «Նախապատրաստում» փուլը, թե ոչ:

SupportsSnapshotIsolation

public virtual bool SupportsSnapshotIsolation
{
   get { return false; }
}

Վերադարձնում է տվյալների աղբյուրի հարցման կատարման իզոլյացիայի մակարդակը snapshot է, թե ReadCommitted:

Ոչ վիրտուալ մեթոդներ

Execute

public Task<DataSourceResult<R>> Execute(P param, HashSet<string> columns = null, IExtender extender = null, CancellationToken stoppingToken = default)

Կատարում է տվյալների աղբյուրը` որպես մուտքային պարամետրեր ստանալով տվյալների աղբյուրի՝

  • param - պարամետրերը նկարագրող դասի օբյեկտ,
  • columns - վերադարձվող սյուների անվանումների ցուցակը,
  • extender - տվյալների աղբյուրի ընդլայնումը,
  • stoppingToken - ընդհատման օբյեկտը։

Տե՛ս օրինակը։

Վիրտուալ մեթոդներ

AfterDataReaderClose

protected virtual Task AfterDataReaderClose(DataSourceArgs<P> args, CancellationToken stoppingToken)

Մեթոդը կանչվում է միջուկի կողմից SQL հարցման կատարման ավարտից հետո, երբ SqlDataReader-ը արդեն փակ է:

Տե՛ս AfterDataReaderCloseMode։

Տե՛ս օրինակը։

AfterDataReaderClose

protected virtual Task<bool> AfterDataReaderClose(DataSourceArgs<P> args, R row)

Մեթոդը կանչվում է միջուկի կողմից SQL հարցման կատարման ավարտից հետո ամեն մի հաշվարկված տողի համար, երբ SqlDataReader-ը արդեն փակ է:

Մեթոդը վերադարձնում է bool տիպի արժեք, որը ցույց է տալիս թե ընթացիկ տողը պետք է ընդգրկվի տվյալների աղբյուրի տողերի վերջնական ցուցակում, թե ոչ։

Տե՛ս AfterDataReaderCloseMode։

Տե՛ս օրինակը։

AfterExecuteSQLCommand

protected virtual void AfterExecuteSQLCommand(DataSourceArgs<P> args, SqlDataReader reader)

Մեթոդը կանչվում է միջուկի կողմից SQL հարցման սկսելուց հետո, երբ SqlDataReader-ը արդեն բաց է: Նախատեսված է reader-ից սյունակների դիրքերի ստացման համար SqlDataReader.GetOrdinal մեթոդով։

Տե՛ս օրինակը։

BeforeExecuteSQLCommand

protected virtual Task BeforeExecuteSQLCommand(DataSourceArgs<P> args, CancellationToken stoppingToken)

Մեթոդը կանչվում է միջուկի կողմից MakeSqlCommand մեթոդի ավարտից հետո, Նախատեսված է տվյալների աղբյուրի կատարումից առաջ նախապատրաստական աշխատանքներ կատարելու համար:

FillData

protected virtual Task FillData(DataSourceArgs<P> args, CancellationToken stoppingToken)

Մեթոդը կանչվում է միջուկի կողմից array-based տվյալների աղբյուրի դեպքում։ նախատեսված է վերջնական տողերի ցուցակի ձևավորման համար։

Տե՛ս ձեռնարկում array-based տվյալների աղբյուրի նկարագրություն։

MakeSQLCommand

protected virtual Task<SqlCommand> MakeSQLCommand(DataSourceArgs<P> args, CancellationToken stoppingToken)

Մեթոդը կանչվում է միջուկի կողմից, այն հարկավոր է մշակել և վերադարձնել sql-based տվյալների աղբյուրի sql հարցման կատարող SqlCommand-ը։

Տե՛ս ձեռնարկում Sql հարցման ձևավորում։

ProcessRow

protected virtual bool ProcessRow(DataSourceArgs<P> args, R row, SqlDataReader reader)

Մեթոդը կանչվում է միջուկի կողմից MakeSqlCommand մեթոդում ձևավորված SQL հարցման կատարման ընթացքում, երբ հարցման տվյալները կարդացող SqlDataReader-ը դեռ բաց է:

Մեթոդը վերադարձնում է bool տիպի արժեք, որը ցույց է տալիս թե ընթացիկ տողը պետք է ընդգրկվի տվյալների աղբյուրի տողերի վերջնական ցուցակում, թե ոչ։

Տե՛ս օրինակը։