Работа с файлами
Добавлено: Ср янв 09, 2013 4:44 pm
Добрый день!
Возник вопрос по быстродействию InTouch при работе с файлами.
Задача сформировать HTML файл из данных, получаемых от SQL сервера.
В проекте создана кнопка "Button", по нажатию которой вызывается программа:
SQLSetStatement( ConnectionId, SqlQuery);
SQLPrepareStatement( ConnectionId,StatementID);
SQLExecute( ConnectionId,"DataTableQuery",StatementID);
SQLFirst( ConnectionId );
FOR I = 1 TO SQLNumRows( ConnectionId) (в результате запроса таблица из 17082 строк)
LogMessage( StringFromIntg( I, 10));
{ Обработка данных SQL, в результате получаем очень длинную строку}
FileWriteMessage(1_G_DTTablePath,-1,"Моя очень длинная строка, 131 символ", 1 );
SQLNext( ConnectionId );
NEXT;
Исполнение данной команды затягивается на 25 минут. Если убрать строку FileWriteMessage время обработки сокращается до 9 секунд. Отсюда вопрос, существуют ли способы более быстрой работать с файлами (точно такая же функция на другой скаде занимает 2 минуты, поэтому и возник данный вопрос)?
Возник вопрос по быстродействию InTouch при работе с файлами.
Задача сформировать HTML файл из данных, получаемых от SQL сервера.
В проекте создана кнопка "Button", по нажатию которой вызывается программа:
SQLSetStatement( ConnectionId, SqlQuery);
SQLPrepareStatement( ConnectionId,StatementID);
SQLExecute( ConnectionId,"DataTableQuery",StatementID);
SQLFirst( ConnectionId );
FOR I = 1 TO SQLNumRows( ConnectionId) (в результате запроса таблица из 17082 строк)
LogMessage( StringFromIntg( I, 10));
{ Обработка данных SQL, в результате получаем очень длинную строку}
FileWriteMessage(1_G_DTTablePath,-1,"Моя очень длинная строка, 131 символ", 1 );
SQLNext( ConnectionId );
NEXT;
Исполнение данной команды затягивается на 25 минут. Если убрать строку FileWriteMessage время обработки сокращается до 9 секунд. Отсюда вопрос, существуют ли способы более быстрой работать с файлами (точно такая же функция на другой скаде занимает 2 минуты, поэтому и возник данный вопрос)?