Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.12.18;
Скачать: CL | DM;

Вниз

Ошибка экспорта в Excel: OLE error 800A03EC; EOleException   Найти похожие ветки 

 
OW ©   (2011-09-07 17:39) [0]

из MSSQL с помощью ADO беру данные и экспортирую в excel.

sql = "select *from dbo.ActivRequestOW(:FDateTime(Первая дата) , вторая дата). передается параметрами.
не трогал ничего уже пол-года. Есл не больше. Каждый день выгружалось на ура.
в InterpriseManagere и сейчас выполняется на ура - данные получаю, примерно 4 000 строк (и 14 полей).

пробовал так
 Cell1 := Sheet.Cells[BeginRow, BeginCol];
   Sheet.Range[Cell1, EmptyParam].CopyFromRecordset(  -- тут OLE error 800A03EC
     Q.Recordset,
     EmptyParam,
     EmptyParam
   );


и так
 EndRow := Q.RecordCount + BeginRow;
 EndCol := Q.FieldCount + BeginCol;
 ArrayData := VarArrayCreate([1, EndRow + 1, 1, EndCol + 1], varVariant);
 i := 0;
 if  WithHead then
 begin
   i := i + 1;
   for j := 0 to Q.FieldCount - 1 do
     ArrayData[I, J+1] := Q.Fields[j].FieldName;
 end;
 Q.First;
 while not(Q.Eof) do
 begin
   i := i + 1;
   for j := 0 to Q.FieldCount - 1 do
     ArrayData[I, J+1] := Q.Fields[j].Value;
   Q.Next;
 end;
 SetValue(Sheet, BeginCol, BeginRow, BeginCol + EndCol, BeginRow + EndRow, ArrayData);

procedure SetValue(Sheet: Variant; BC, BR, EC, ER: Integer; Val: variant);
var
 Cell1, Cell2, Range: Variant;
begin
 Cell1 := Sheet.Cells[BR, BC];
 Cell2 := Sheet.Cells[ER, EC];
 Range := Sheet.Range[Cell1, Cell2];
 Range.Value := Val; -- тут OLE error 800A03EC
end;


последний вариант юзаю во всех проектах, никогда не подводил, а последние два дня вылетает ошибка сабжа.

На начальном этапе один раз такое было - в одно поле юзер набил половину Войны и мир, и ячейка excel не могла принять. Сейчас это учтено.
from dbo.ActivRequestOW возвращает не более 500 знаков с каждого поля.

Куда еще можно посмотреть?


 
Медвежонок Пятачок ©   (2011-09-07 17:43) [1]

Твоя программа здесь лишняя.
Exel сам в состоянии получить эти данные, без подпорок.


 
OW ©   (2011-09-07 17:46) [2]

точный запрос:
select
 IDOperation,
 Step,
 CONVERT ( varchar(10), DateCreate, 121) [Дата],
 [ФИО],
 [Филиал],
 case
   when Step = 0 then "Консультация"
   else "Заявка"
 end [Обращение],
 [ПредметОбращения] [Причина],
 [Источник],
 [Адрес],
 [АОН],
 [Телефон] [КонтактТел],
 "" [Описание],
 [Служба],
 [Оператор]
from
dbo.ActivRequestOW(:DTF, :DTS)

Код Функции:
Select
 Cast(Step as int) Step,
 Cast(R.DateCreate as DateTime) DateCreate,
 Cast(R.IDOperation as VarChar(50)) IDOperation,
 Cast(
 case    
   when OMS.IDOperation is null then "КонтактЦентр"
   else "ОМС"
 end as VarChar(50)) [Источник],    -------------------------------------------------------[Источник]
 Cast(D.ShortName as VarChar(50)) [Филиал],  ----------------------------------------------[Филиал]
 Cast(S.FullNAME as VarChar(300)) [ПредметОбращения],     ---------------------------------[ПредметОбращения]
 Cast(
 case
   when C.IDOperation is null then "не заполнено"
   else C.NAME
 end as VarChar(250)) [ФИО],                         --------------------------------------[ФИО]
 Cast(
 case
   when C.IDOperation is null then "не заполнено"
   else C.Address
 end as VarChar(250)) [Адрес],                                -----------------------------[Адрес]
 Cast(O.AON as VarChar(50)) [АОН],         -----------------------------------------------[АОН]
 Cast(
 case
   when C.IDOperation is null then "не заполнено"
   else C.PHONE
 end as VarChar(50)) [Телефон],                                         -------------------[Телефон]
 Cast(SUBSTRING ( R.Information ,1 , 500 ) as VarChar(500)) [Информация],     -------------[Информация]
 Cast(
 case
   when LEFT ( SD.INFORMATION, 2) = "ИП" then "ИП-"
   when LEFT ( SD.INFORMATION, 2) = "ТП" then "ТП+"
   when LEFT ( SD.INFORMATION, 3) = "КСС" then "КСС"
   else SD.INFORMATION
 end as VarChar(150)) [Служба],                      --------------------------------------[Служба]
 --SD.INFORMATION,        -------- А если полностью смотреть?
 Cast(U.UName as VarChar(150)) [Оператор]                       ---------------------------[Оператор]

from
 Request R
 join VTDept D ON r.IDVTDept = d.IDVTDept
 join Operation O ON r.IDOperation = o.IDOperation
 join vFullNameSubject S on S.IDSubject = R.IDSubject
 join SCTDept SD on SD.SCT = O.SCT and SD.IDVTDept = D.IDVTDept
 join [Service] SRV on SRV.IDService = SD.IDService
 left join Customer C on R.IDOperation = C.IDOperation
 left join OMSRequestToOperation OMS on OMS.IDOperation = R.IDOperation
 left join SDUser U on U.IDUser = R.IDUser


 
OW ©   (2011-09-07 17:48) [3]


> Медвежонок Пятачок ©   (07.09.11 17:43) [1]

1. не лишняя
Там еще из Oracle берутся данные, и из mdb если надо, все это на одну страницу, по которой делается pivot, с измерениями, в зависимости от..

2. а по теме?


 
Медвежонок Пятачок ©   (2011-09-07 17:51) [4]

из оракла, из мдб, из веба, и из многого другого.
скрипач здесь не нужен.
если нужен скрипач - не нужен эксель.

а если нужен и скрипач и эксель, то выгрузи ты все в ксв и открой себе спокойно экселем.


 
Медвежонок Пятачок ©   (2011-09-07 17:58) [5]

поэтому не надо загрязнять ноосферу и экосистему земли дурацкими Project1.exe


 
OW ©   (2011-09-07 18:54) [6]

видите ли, уважаемый..
Это работало так.  
Трансформацию данных надо еще настраивать и отлаживать
А это должно работать уже завтра, в идеале сегодня.
Так и будет, иначе побьют :)

Ошибка где-то опять в данных.
select top 1 * - работает
select * - с ошибкой..

Сейчас вычислю что не нравится.


 
OW ©   (2011-09-08 08:41) [7]

работает. Сегодня отработала версия без правки, позавчерашняя. Точно в данных.


 
OW ©   (2011-09-08 09:23) [8]

Вот до этой записи экспорт идет select top 1133
0
2011-08-06 03:48:31.883
110806034831863341
КонтактЦентр
Оренбург
Консультации/Передано в тех.поддержку
не заполнено
не заполнено
3532630xxx
не заполнено
NULL
ИП
Рузаxxxx А.С.(80)

select top 1134 - нет.
1134-я запись
0
2011-08-06 07:06:06.200
110806070606183341
КонтактЦентр
Ульяновск
Консультации/Передано в тех.поддержку
не заполнено
не заполнено
8422633xxx
не заполнено
NULL
ИП
Рузxxxxx А.С.(80)

чем они отличаются?!? ничего не понимаю..
ps
сегодня 8,5к записей - все ок.


 
Ega23 ©   (2011-09-08 10:24) [9]


> чем они отличаются?!? ничего не понимаю..

3532630xxx
8422633xxx

Может типы данных уплыли, или RangeCheck какой-нить?


 
OW ©   (2011-09-08 10:50) [10]

нет. Нашел :)
"В квадратике знак вопроса" символ, который оператор умудрился набрать..
Как!? казалось бы, стандартный INPUT web-интерфейса..
проUPDATEил  поле - все работает :)


 
OW ©   (2011-09-08 10:56) [11]

причем, символ то не виден. А оператор один и тот же.
Поди набила где-то(или автор на php web-интерфейса) стандартные ответы - и копипастит (или выбирает).
Видел их интерфейс только мельком, пару раз.


 
Inovet ©   (2011-09-08 11:02) [12]

> [10] OW ©   (08.09.11 10:50)
> "В квадратике знак вопроса" символ, который оператор умудрился набрать..
> Как!? казалось бы, стандартный INPUT web-интерфейса..

Нет, казалось бы и что, что набрал левый символ - сервер раз позволил такой добавить, то и обрабатывать должен.


 
OW ©   (2011-09-08 11:06) [13]


> Inovet ©   (08.09.11 11:02) [12]

Сервер и обрабатывает
это excel не принимает


 
OW ©   (2011-09-08 11:09) [14]

если принудительно написать везде а-ля
select
""""+Cast(Step as VarChar(2)) Step,
""""+Convert(varchar(25), R.DateCreate, 120) DateCreate,
то все опять выгружается.

Т.е., видимо, Excel конвертировать пытается по-ходу дела.


 
Ega23 ©   (2011-09-08 11:33) [15]


> Т.е., видимо, Excel конвертировать пытается по-ходу дела.


Я так понимаю, если формат ячейки задан.


 
OW ©   (2011-09-08 11:43) [16]

наверное. Сам явно не задаю.
Но он же (Excel) по-умолчанию сам какой-то принимает. По-моему, по первому встреченному значению, но не уверен. Да и ладно, в запросе просто конвертнул этот столбец явно в строку да и все. За оба дня перезапустил - все сделалось.
Всем спасибо :)



Страницы: 1 вся ветка

Текущий архив: 2011.12.18;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.01 c
4-1253007852
harisma
2009-09-15 13:44
2011.12.18
Проверка существования папки


8-1221403444
Nevalyashka
2008-09-14 18:44
2011.12.18
формат MusicXML


2-1315318888
Gu
2011-09-06 18:21
2011.12.18
Dll метод


2-1315833646
patrick1968
2011-09-12 17:20
2011.12.18
Доступ с правами определенного пользователя


15-1314168862
OW
2011-08-24 10:54
2011.12.18
Два простых вопроса по Oracle и PL/SQL Developer