Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.12.18;
Скачать: [xml.tar.bz2];

Вниз

Ошибка экспорта в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.004 c
15-1314617994
Юра Погудин
2011-08-29 15:39
2011.12.18
Проблема с форматированием Windows


15-1314396395
alexdn
2011-08-27 02:06
2011.12.18
Программа для видео


4-1252399230
Jeyson
2009-09-08 12:40
2011.12.18
одно и тоже консольное приложение работает по разному


4-1232705413
WanderBuild
2009-01-23 13:10
2011.12.18
Как правильней получить список процессов?


15-1314995392
Юрий
2011-09-03 00:29
2011.12.18
С днем рождения ! 3 сентября 2011 суббота





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский