15.08.2012, 08:08
|
| »»» |
#1
|
Начинающий
Регистрация: 23.11.2011
Сообщений: 13
|
Ошибка экспорта данных
Добрый день!
Для нужд нашей внутренней системы забираю данные из системы "Автограф". Использую процедуру Autograph.ExportDataToFile
Вопрос такой. У нас бывает, что появляются проблемы с доступом в Интернет (падает скорость). Так вот в этом случае часто появляется ошибка "Ошибка экспорта данных в файл <имя файла>". Как обработать эту ошибку (чтоб не выводилась)?
|
|
|
|
15.08.2012, 08:15
|
| »»» |
#2
|
Дилер
Екатеринбург, ЗАО "Седьмая Экспедиция"
Регистрация: 14.12.2010
Сообщений: 15,024
|
ИМХО это не вязано с интернетом. У вас данные подгружает автограф или даталоадер?
ЗАО "Седьмая Экспедиция", Екатеринбург, РФ
Мушин Виктор Валерьевич, Технический директор
|
|
|
|
15.08.2012, 08:40
|
| »»» |
#3
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,956
|
С интернет-ом это не связано. Связано с программированием, правами доступа пользователя, файл занят другим приложением и т.п.
Может быть где-то не дождались готовности данных или еще что-то.
Без дополнительной информации сказать трудно.
Plex: речь про OLE.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
15.08.2012, 10:59
|
| »»» |
#4
|
Дилер
Екатеринбург, ЗАО "Седьмая Экспедиция"
Регистрация: 14.12.2010
Сообщений: 15,024
|
SK, да про OLE я понял. Предположил Вдруг программа неприяно вопринимает тот момент когда даталоадер допиывает в бинарник новые данные а при этом форируется выгрузка, хотя понятно что такая связь маловероятна.
ЗАО "Седьмая Экспедиция", Екатеринбург, РФ
Мушин Виктор Валерьевич, Технический директор
|
|
|
|
16.08.2012, 00:49
|
| »»» |
#5
|
Начинающий
Регистрация: 23.11.2011
Сообщений: 13
|
> У вас данные подгружает автограф или даталоадер?
Данные подгружает автограф.
> Связано с программированием, правами доступа пользователя, файл занят другим приложением и т.п.
Вот кусок кода
Autograph.ExportDataToFile(dr_tmp+'\proba_'+IntToS tr(Autograph.GroupsNum)+IntToStr(Autograph.GroupCa rsNum)+IntToStr(Autograph.TripIndex)+'.dbf', 10,1);
Дальше делаю запрос через ADO к этой таблице, забираю данные и удаляю файл. Программирование прямое, без потоков.
Но... У нас в течении суток были проблемы на канале доступа в Инет и эта шибка появлялась регулярно (программа периодически забирает данные). Как только канал был восстановлен - ошибка не появляется. В данный момент все работает, но хотелось бы разобраться что это за ошибка и как ее обойти, чтоб не раздражать пользователей.
|
|
|
|
16.08.2012, 06:04
|
| »»» |
#6
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,956
|
1. Это просто вызов функции экспорта.
2. Приведите кусок кода с запуском функции расчета.
3. Вы пробовали воспользоваться обработчиком try / catch ?
4. Что за dr_temp ? Это сетевой диск ?
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
16.08.2012, 06:14
|
| »»» |
#7
|
Начинающий
Регистрация: 23.11.2011
Сообщений: 13
|
Это кусок текста программы:
Autograph.StartComputing(Autograph.GroupFileName,A utograph.CarDevice, DateTimeToStr(adtn), DateTimeToStr(adtk),'GSM',0);
while Autograph.ComputingBusy<>0 do
Vis_form.Cursor := crHourGlass;
Vis_form.Cursor := crDefault;
Autograph.ExportDataToFile(dr_tmp+'\proba_'+IntToS tr(Autograph.GroupsNum)+IntToStr(Autograph.GroupCa rsNum)+IntToStr(Autograph.TripIndex)+'.dbf', 10,1);
try
A_db.SQL.Clear;
A_db.SQL.Add('select sernum, datetime, speed, level1, COUNTER3 from proba_'+IntToStr(Autograph.GroupsNum)+IntToStr(Aut ograph.GroupCarsNum)+IntToStr(Autograph.TripIndex) +' where tdatetime>'+Replace(FloatToStr(mtm),',','.')+' order by datetime');
A_db.Active := true;
except
on E:Exception do begin
if fl_log then
save_log(DateTimeToStr(now)+' Ошибка запроса к таблице DBF.'+chr(13)+' '+PChar(E.Message));
exit;
end;
end;
Так вот, все работает правильно, а ошибка происходит именно в момент выполнения процедуры Autograph.ExportDataToFile. Причем сообщение об ошибке выдается как обычное сообщение с кнопкой "Ок".
dr_temp это папка на локальном компьютере, где установлена моя программа и Автограф.
|
|
|
|
16.08.2012, 07:22
|
| »»» |
#8
|
ТехноКом
Регистрация: 17.12.2010
Сообщений: 2,865
|
Попробуйте Autograph.TripIndex = 1 перед ExportDataToFile
Добавлено через 2 минуты
Ещё надо бы сделать проверку TripsNum > 0
ООО «ТехноКом», г. Челябинск
Макаров Константин Евгеньевич - Главный Программист ООО «ТехноКом» (диспетчерское ПО «АвтоГРАФ»)
|
|
|
|
16.08.2012, 07:25
|
| »»» |
#9
|
Начинающий
Регистрация: 23.11.2011
Сообщений: 13
|
Прошу прощения. Я убрал часть кода. Autograph.TripIndex = j у меня есть. И проверка тоже стоит.
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 10:42. Часовой пояс GMT.
|
|