Форум: "Начинающим";
Текущий архив: 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