2011年1月19日 星期三

performance related

http://benchmarktoolkit.codeplex.com/

SysGlobalObjectCache
Data Management Framework
Dynamics Management View
xClassTrace
runClassMethodIL
sysglobalconfiguration table

2011年1月14日 星期五

Common table

Recid,CreateDate ..etc are inherited form Common table and Recid is not only use for index,RECID is also unique ID

Therefore we can use sth like this to addRange:

qB1.addRange(fieldname2id(tablename2id('smmActivities'),fieldstr(Common,RecId))).value(queryValue(actNum));

good example of adding relationship to the query

between 2 table:
static void Job6(Args _args)
{
DictRelation dr1,dr2;
Query q;
QueryBuildDataSource qB1,qB2;

q = new Query();
qB1 = q.addDataSource(tablename2id('smmActivities'));

dr1 = new DictRelation(tablename2id('smmActivities'));
if(dr1.loadTableRelation(tablename2id('smmBusRelTable')))
{
qB2 = qB1.addDataSource(tablename2id('smmBusRelTable'));
qB2.addRelation(dr1);
}

info(qB2.toString());

}

between 3 table:
static void Job6(Args _args)
{
DictRelation dr, dr1;
Query q;
QueryBuildDataSource qB1,qB2,qB3;

dr = new DictRelation(tablename2id('smmActivities'));
dr.loadTableRelation(tablenum(smmActivityParentLinkTable));

dr1 = new DictRelation(tablenum(smmActivityParentLinkTable) );
dr1.loadTableRelation(tablename2id('smmBusRelTable'));

q = new Query();
qB1 = q.addDataSource(tablename2id('smmActivities'));
qB1.addRange(fieldname2id(tablename2id('smmActivities'),fieldstr(Common,RecId))).value(queryValue(docuRef.RefRecId));

qB2 = qB1.addDataSource(tablenum(smmActivityParentLinkTable));
qB2.addRelation(dr);

qB3 = qB2.addDataSource(tablename2id('smmBusRelTable'));
qB3.addRelation(dr1);


info(qB1.toString());

}