у меня есть одно подозрение - есть цикл в котором выводятся однородные данные.
если данных для вывода в одной итерации много (свыше 32000), то валится с ошибкой
если данных в одной итерации меньше чем 32000, то все ок.
мне надо знать внутренние механизмы ядра при работе с экселем...
у меня есть одно подозрение - есть цикл в котором выводятся однородные данные.
если данных для вывода в одной итерации много (свыше 32000), то валится с ошибкой
если данных в одной итерации меньше чем 32000, то все ок.
мне надо знать внутренние механизмы ядра при работе с экселем...
текст клиент-скрипта сохраняется в глобальной переменной операции и выведен на экранную форму (но с отключенной видимостью). Длина этой переменной как раз varchar2(32000)
текст клиент-скрипта сохраняется в глобальной переменной операции и выведен на экранную форму (но с отключенной видимостью). Длина этой переменной как раз varchar2(32000)
как я понимаю в Локальных описаниях , выполняя различные операции из библиотеки EXCEL, я заполняю эту Глобальную переменную (назовем ее V_DEST).
эта переменная периодически очищается, записывается новый кусок и т.д. так или нет???
поэтому количество данных передаваемое в эксель ограничивается только экселем (65000 строк на листе)
я просто первый раз с такой проблемой сталкиваюсь. есть огромные отчеты в эксель (тот же ФОР), куча самописных...но не было такой проблемы
Ок.
Эксель старый, поэтому ограничение все таки есть
В каких случаях V_DEST очищается?
Ситуация такая: у меня два листа, фактически одни и те же данные выводят на оба листа, просто в разном "обрамлении". Так вот при выводе на первый лист V_DEST переполняется
Я так понимаю, что V_DEST заполняется внутри логических структур (циклов, ветвлений) и не может быть разбита на куски так, чтобы разбивались какие-то команды экселю... типа Range(Cells(1,1), Cells(5, 5)).Select должна полностью попасть в один кусок V_DEST
Я правильно думаю?
А в моем случае просто V_DEST переполняется внутри логической структуры....
как-то так...
Если это так то могу попробовать поменять код как-нибудь..
Как насчет поставить отладку с выводом длины переменной в интересующих местах?
danzki пишет:
Я так понимаю, что V_DEST заполняется внутри логических структур (циклов, ветвлений) и не может быть разбита на куски так, чтобы разбивались какие-то команды экселю... типа Range(Cells(1,1), Cells(5, 5)).Select должна полностью попасть в один кусок V_DEST
Я правильно думаю?
А в моем случае просто V_DEST переполняется внутри логической структуры....
как-то так...
Если это так то могу попробовать поменять код как-нибудь..
Мне кажется, направление изысканий задано. Уже можно приступать к самостоятельным действиям.
Как насчет поставить отладку с выводом длины переменной в интересующих местах?
В DEfault есть зануление V_DEST
Далее в одном месте есть
EXCEL.Exec_Script ( V_DEST );
В других местах явных манипуляций с V_DEST нет. Проверяю длину, до и после данной строки (даже выводил в дебаг V_DEST)
devor пишет:
Мне кажется, направление изысканий задано. Уже можно приступать к самостоятельным действиям.
Так то верно, но не хотелось бы после произведенных манипуляций наткнуться на эти же грабли ))) Хотелось бы знать наверняка
Кстати Клиент-скрипт - типичный для таких случаев
Public Function Main(LastControl)
If LastControl is OK and V_DEST.Text <> "" Then
DO
Execute V_DEST.Text
Call Form1.ScriptServerValidate( OK, "OK")
Loop While V_DEST.Text <> ""
End If
Main = True 'Результат валидатора (True, False, NULL)
End Function
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
Домен cftclub.ru не связан с ЗАО "Центр Финансовых Технологий" и ни в коей мере не нарушает авторских и иных прав
Владелец может не разделять мнения Участников и не несет ответственности за их публикации
Powered by phpBB