Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

OLE Error [D6, WinXP]


Dennis S ©   (2009-01-23 10:52:00) 

При работе со строками, программа выдаёт ошибку "OLE error 800A03EC".
Что это значит? В чём проблема?
Кол-во строк при получении сообщения об ошибке: 2819.
При кол-ве строк менее 2000 такого не происходит.
Что это?


Dennis S   (2009-01-27 00:20:00) [1]

Всё, нашёл в чём фишка!!! :))
В одной из строк из-за смещения данных в "источнике", при экспорте в Excel в одной из ячеек таблицы получается нечто, похожее на "=45" на это Excel и ругается!!!

Кстати, как обработать эту ошибку и вывести сообщение типа "Смещение данных в ячейке 'Х', информация будет заменена на 'ХХХ'!" и продолжить процесс?


Dennis S   (2009-01-27 00:07:00) [2]

Будешь тут ССЗБ... :(
то, что ты докопался до "n", "i" - это конечно правильно, код ещё пока кривой...
но обозначенная мною трабла не в этом...
сейчас кое-что нашёл по этой ошибке в сети - пытаюсь разобраться сам.


Сергей М.   (2009-01-26 19:03:00) [3]

procedure TForm1.toEXCEL1Click(Sender: TObject);
begin
..
      n := n + 1; // Чемуравно n?!!!!


Сергей М.   (2009-01-26 19:01:00) [4]


> статические они, потому что используются ещё другой процедурой.


Одновременно с этойчто ли ?
Ну тогда ты ССЗБ.


Dennis S   (2009-01-26 18:16:00) [5]

mmX2.Lines.Count = 2819 (естественно, не меняется во время цикла)

а статические они, потому что используются ещё другой процедурой.


Сергей М.   (2009-01-26 16:35:00) [6]


> а n равна 2671


Чему при этом равно mmX2.Lines.Count ?

И еще раз - почемупеременные i и n у тебя статические, а не локальные ?


Dennis S   (2009-01-26 16:00:00) [7]

Может кто-нибудь всё-таки знает, в чём ошибка....?


Dennis S   (2009-01-23 17:54:00) [8]

2 Сергей М. ©
...в этот момент i равна 463...
а n равна 2671.

попробовал другой массив пропустить - проходит нормально...
хотя кол-во строк больше: 3746
на финише: i = 3746, n = 19232
а первый не идёт и всё тут...

2 Плохиш ©
я не понимаю какая ошибка, что она значит и что нужно править...


Плохиш   (2009-01-23 14:22:00) [9]


> Хотелось бы в общих чертах понять о чём речь...

я это писал?

> кроме указанного тобой кода, в сообщении есть конкретная
> ошибка, возвращаемая екселем....


Сергей М.   (2009-01-23 13:55:00) [10]

А n в этот момент чему равна ?
И почему переменные i и n у тебя статические, а не локальные ?


Dennis S   (2009-01-23 13:49:00) [11]

2 Сергей М. ©
строк в memo, которые потом и обрабатываются в TForm1.toEXCEL1Click

при сборке и работе из Delphi выскакивает Debugger Exception Notification с выделением этой стоки в коде.

в этот момент i равна 463.


Сергей М.   (2009-01-23 13:23:00) [12]


> Кол-во строк при получении сообщения об ошибке: 2819.


Строк каких- тех что в Мемо или тех что ты заполняешь на раб.листе ?

Каким образом ты определил, что именно на этой строчке "прерывается" ?
И чему в этот момент равна i ?


Dennis S   (2009-01-23 13:10:00) [13]

2 Сергей М. ©
Прерывается на:
Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1,6] := COPY(S,3,(length(S)-2));

2 Плохиш ©
Спасибо, конечно, но я в немецком "0"...
Поэтому, как говорил один из кино-героев: "Хотелось бы в общих чертах понять о чём речь..."
Предполагаю, что ключ есть в посте "Andreas Kosch", но в чём фишка не понимаю...


Плохиш   (2009-01-23 12:34:00) [14]


> Dennis S   (23.01.09 10:52)
>
>

Я вот твою ошибку в гуглю скопировал, просто слова между ковычками и он мне выдал

Ergebnisse 1 - 10 von ungefähr 881für OLE error 800A03EC. (0,15 Sekunden)

Не так уж и много страниц.
и первая ссылка http://entwickler-forum.de/showthread.php?t=17274
в которой подробно расписано, что кроме указанного тобой кода, в сообщении есть конкретная ошибка, возвращаемая екселем....


Сергей М.   (2009-01-23 11:42:00) [15]

Выполнение какой конкретно строчки вызывает это исключение ?


Dennis S   (2009-01-23 10:56:00) [16]

Ошибка при обработке:

procedure TForm1.toEXCEL1Click(Sender: TObject);
begin
       panX.Color := clYellow;
       mmX.Enabled := False;
       mmX2.Enabled := False;
       Excel := CreateOleObject('Excel.Application.9');
       Excel.Workbooks.Add;
       Excel.ActiveWorkBook.WorkSheets[1].Cells[1,1] := 'Шифр заказа';
       Excel.ActiveWorkBook.WorkSheets[1].Cells[1,2] := 'Код';
       Excel.ActiveWorkBook.WorkSheets[1].Cells[1,3] := 'Наименование';
       Excel.ActiveWorkBook.WorkSheets[1].Cells[1,4] := 'Ед.';
       Excel.ActiveWorkBook.WorkSheets[1].Cells[1,5] := 'Кол-во';
       Excel.ActiveWorkBook.WorkSheets[1].Cells[1,6] := 'Доп.инфо';
       Excel.ActiveWorkBook.WorkSheets[1].Range['A1:F1'].Select;
       Excel.Selection.Font.Name := 'Tahoma';
       Excel.Selection.Font.Size := 9;
       Excel.Selection.Font.Bold := True;
       Excel.Selection.Interior.ColorIndex := 6;

       For i := 1 to mmX2.Lines.Count do begin
       pBAR2.Position := i * 100 div (mmX2.Lines.Count-1);
       n := n + 1;
         Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1,1] := lbNAME.Caption;
         S := mmX2.Lines.Strings[n-1];
         Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1,2] := S;
         S := mmX2.Lines.Strings[n];
         Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1,3] := S;
         S := mmX2.Lines.Strings[n+1];
         Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1,4] := S;
         S := mmX2.Lines.Strings[n+2];
         Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1,5] := S;
         S := mmX2.Lines.Strings[n+3];
         Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1,6] := COPY(S,3,(length(S)-2));
         if S = '' then n := n + 4 else n := n + 5;
       Application.ProcessMessages;
       end;

       Excel.ActiveSheet.PageSetup.Orientation := 2;
       Excel.Visible := True;

       panX.Color := clBtnFace;
       mmX.Enabled := True;
       mmX2.Enabled := True;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо