Ошибка будет в любом случае в Run-Time вне зависимости от способа. На этапе компиляции не даст ошибки никакой из приведенных способов. Это легко проверить:
PHP код:
static void Job_Query(Args _args)
{
QueryBuildDataSource qbds
Query querySales;
QueryRun queryRunSales;
;
querySales = new Query();
qbds = querySales.addDataSource(tablenum(SalesTable));
qbds.addRange(fieldid2ext(fieldnum(SalesTable,dimension),10));
queryRunSales = new QueryRun(querySales);
queryRunSales.next();
}
Разумеется, нет поля Dimension[10], однако синтаксически, все абсолютно правильно. Компиляция проходит без ошибок! (у меня 2.5, может в 3.0 компилятор как-то поумнел?)
Ссылка на то, что название полей, таблиц и методов могут изменится в данном случае неуместна! В обоих случаях я должен писать имя таблицы и имя поля. Разница только в способе указания индекса массива - либо в качестве отдельного параметра, либо как реквизит имени поля.
Так что оба способа в данном случае абсолютно равноправны. Вопрос исключительно личных предпочтений.