Здравствуйте.
var arrServices = GetSimpleSQLResult(sSQL);
тогда arrServices - одномерный массив, с длиной запрашиваемых столбцов.
а если sSQL возвращает несколько строк, можно объявить двумерный массив, где количвство столбцов = количеству запрашиваемых столбцов, а количвство строк = количество возвращаемых строк
Спасибо.
Нравится
Здравствуйте, Марина!
Конечно, теоретически это сделать возможно, но при условии, что Вы модифицируете функцию GetSimpleSQLResult(sSQL) таким образом, что возвращаемый результат будет записан в двумерный массив.
т.е. такой встроенной функции нет ?
Есть ли в террасофт понятие resultSet ?
например:
set rs = ExecuteQuery("select столбец from таблица where условие")
Do While Not rs.EOF -- т.е пока не дошли до последней строки запроса(включительно), EOF-end of file
-- какой-то анализ
rs.MoveNext -- переход на следующую строку
Loop
Функции GetSimpleSQLResult в коробочной версии нет, это какая-то доработка.
Обычно в таком цикле перебирают Dataset с несколькими строками результатов, примерно так:
function GetAllRecordFieldsValues(Dataset, FieldNames, Result) { var Result = new Array(); var i; var ResultItem; while(!Dataset.IsEOF) { Result[Result.length] = new Array(); ResultItem = Result[Result.length-1]; for (i=0;i<FieldNames.length;i++){ ResultItem[FieldNames[i]] = Dataset.Values(FieldNames[i]); } Dataset.GotoNext(); } return Result; }
Это стандартная функция из scr_DB.
Она возвращает массив массивов.
Здравствуйте Александр.
Спасибо за пример, я попробовала.
И если я Вас правильно поняля, для этого надо было создать tbl_таблицу, sq_запрос, ds_датасет, что я и сделала.
Но ведь, при решении какой-то задачи может возникнуть необходимость пройтись по различным запросам, которые не имеет смысла хранить в системе как таблицу.
Есть ли другой вариант ?
Спасибо.
Любые таблицы базы данных лучше создавать в системе как сервис tbl. А sq — это запрос, графическое представление sql-кода, которое может быть построен и по существующим таблицам. В принципе, если сильно нужно, то и sq, и ds по ней можно создать чисто программно, не в дизайнере. Примеры низкоуровневой работы с этими объектами — в том же scr_DB.