Տվյալների աղբյուրի նկարագրություն
Բովանդակություն
- Ներածություն
- Օրինակներ
- DATA նկարագրություն
- Հատկություններ
- DataSource դաս
- Ոչ վիրտուալ հատկություններ
- Վիտուալ հատկություններ
- Ոչ վիրտուալ մեթոդներ
- Վիրտուալ մեթոդներ
Ներածություն
Տվյալների պահոցից աղյուսակային տեսքով տվյալներ կարդալու և ցույց տալու համար նկարագրվում է տվյալների աղբյուր։
8X համակարգում տվյալների աղբյուր նկարագրելու համար հարկավոր է ունենալ
- .as ընդլայնմամբ ֆայլ սկրիպտերում DATA նկարագրությամբ։
Այն անհրաժեշտ է ներմուծել տվյալների բազա
Syscon
գործիքի միջոցով։ - .cs ընդլայնմամբ ֆայլ, որը պարունակում է սերվերում աշխատող տրամաբանությունը։
Օրինակներ
- Տվյալների աղբյուրի նկարագրման ձեռնարկ
- DataSourceService դաս
- Տվյալների աղբյուրի ընդլայնման բազային դաս
- Տվյալների աղբյուրի ընդլայնման նկարագրման ձեռնարկ
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 տիպի արժեք, որը ցույց է տալիս թե ընթացիկ տողը պետք է ընդգրկվի տվյալների աղբյուրի տողերի վերջնական ցուցակում, թե ոչ։
Տե՛ս օրինակը։