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

Вниз

Как маскировать исключение EDatabaseError?   Найти похожие ветки 

 
oleg1963lora   (2010-02-19 10:23) [0]

Здравствуйте уважаемые Мастера? Имеется МДБ-файл со структурой:
ID_Count - числовой
Date      - символ(10)
Time      - символ(5)
Param    - символ(6)
Ключ Date+Time - уникальный
На входе имею огромный текстовый файл вида:
   Дата    Время     Параметр
14.02.2010 9:05 18,32980728
14.02.2010 9:05 18,21404266
14.02.2010 9:06 18,08520126
14.02.2010 9:06 17,96290207
14.02.2010 9:06 17,84811974
При добавлении записи происходит исключение дублирования и останов проги. Написал такой код

type
 EDatabaseError = class(Exception);
................................................
      try
         Form1.ADOTable1.Post;
      except
         on EDataBaseError do
                            ShowMessage("Попался, Гад!");
       end;

Гад отлавливается, а вслед вываливается совет изменить структуру базы и шлет меня к...
Как бы его спрятать, шоб людей не пугать?


 
Юрий Зотов ©   (2010-02-19 11:20) [1]

Попробуйте запустить программу НЕ из-под Delphi.


 
oleg1963lora   (2010-02-19 11:25) [2]


> Попробуйте запустить программу НЕ из-под Delphi.

Здравствуйте Юрий! Пробовал - таже груша, вид сбоку


 
Медвежонок Пятачок ©   (2010-02-19 11:27) [3]

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


 
oleg1963lora   (2010-02-19 11:39) [4]


> Медвежонок Пятачок

Мне только что звонил друг, он тоже этой задачей занимается. Идея была такая, чтобы искючать из текстовика одинаковые по дате-времени строки.
Я наивно понадеялся, что заливка в базу автоматом отсечет таковые и файл здорово урежется.Так вот, это направление тупиковое. 4800 записей обрабатываются около 40 секунд. Учитывая немереное количество таких файлов... В общем нужно думать как файлы обрабатывать перебором в стринггриде. Спасибо за отзыв.


 
Sergey13 ©   (2010-02-19 11:44) [5]

> [4] oleg1963lora   (19.02.10 11:39)

Сначала залей в соседнюю табличку, и там уже удаляй.


 
Медвежонок Пятачок ©   (2010-02-19 11:47) [6]

Так вот, это направление тупиковое. 4800 записей
Form1.ADOTable1.Post;


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

тут даже на таком смешном и детском количестве как 4800 записей будет тормозить.


 
Плохиш ©   (2010-02-19 11:51) [7]


>          Form1.ADOTable1.Post;
>

В соседней ветке уже советовали нанять программиста.


 
12 ©   (2010-02-19 11:53) [8]

возможно надо действительно, если критерий -скорость,

> в соседнюю табличку

заливать. И если есть что-то вроде bulk insert,не знаю что за БД,  то через него


 
Плохиш ©   (2010-02-19 11:55) [9]


> 12 ©   (19.02.10 11:53) [8]


> не знаю что за БД

В первой строке вопроса написано.


 
Медвежонок Пятачок ©   (2010-02-19 11:57) [10]

Мои показатели:
записей 5200
адокомманд + insert into
локально лежащий мдб
время вставки < 4 секунд


 
Медвежонок Пятачок ©   (2010-02-19 12:07) [11]

причем реально необходимое время еще меньше, так как у меня еще и прогресс-бар отображает процесс инсертов.


 
12 ©   (2010-02-19 12:14) [12]

упс, невнимателен


 
oleg1963lora   (2010-02-19 12:39) [13]


> время вставки < 4 секунд

ИМХО для непротиворечивых данных так и есть. А тут такое месиво.
Сделаю так. Указатель на первую строку, проверка на равенство второй.
Пока равны удалять вторую строку, иначе указатель на вторую строчку и опять проверка следующуй.


 
Игорь Шевченко ©   (2010-02-19 12:46) [14]

программист нужен


 
Sergey13 ©   (2010-02-19 12:52) [15]

> [13] oleg1963lora   (19.02.10 12:39)
> А тут такое месиво.

Действительно месиво

> Param    - символ(6)
> На входе имею огромный текстовый файл вида:
>   Дата    Время     Параметр
> 14.02.2010 9:05 18,32980728

Как ты собираешься вставлять?

> Ключ Date+Time - уникальный
> 14.02.2010 9:06 18,08520126
> 14.02.2010 9:06 17,96290207
> 14.02.2010 9:06 17,84811974

по ключу эта три строки одинаковы. Это и есть твои дубли?

> Сделаю так. Указатель на первую строку, проверка на равенство второй.
> Пока равны удалять вторую строку, иначе указатель на вторую строчку и опять проверка следующуй.

А есть гарантия, что в файле все упорядочено по дате/времени?


 
Медвежонок Пятачок ©   (2010-02-19 13:08) [16]

Пока равны удалять вторую строку, иначе указатель на вторую строчку и опять проверка следующуй.

Если даже в результате этого в файле не окажется дубликатов, то это еще не говорит о том, что не будет нарушен праймари кей при вставке файла в таблицу.


 
oleg1963lora   (2010-02-19 13:24) [17]


> А есть гарантия, что в файле все упорядочено по дате/времени?

Гарантировано прибором. Упорядоченность может быть нарушена только пьяным электриком, перекусившим электропитание :)


 
Вася   (2010-02-19 13:37) [18]


> oleg1963lora   (19.02.10 13:24) [17]


Пьяные электрики часто перекусывают не только электропитание, но и приборы-гарантирующие. Например, путем внесения улучшений в код, формирующий файл


 
oleg1963lora   (2010-02-19 13:50) [19]

Наблюдатель наблюдает. Наблюдатель наблюдаем.(с Р.Шекли)
В данном случае програмист только я, в бригаде только КИПовцы.Залезть в прибор, вытрющить из него ППЗУ, его содержимое, деассемблировать, найти программатор, залить ПЗУху и чтоб потом прибор работал в принципе?
Не проще ли его просто грохнуть? Молотком например. Посидеть пару-тройку лет и все.:)


 
Sergey13 ©   (2010-02-19 14:08) [20]

> [17] oleg1963lora   (19.02.10 13:24)

Это ладно. А что с другими вопросами?


 
oleg1963lora   (2010-02-19 14:41) [21]


> А что с другими вопросами?

А какие еще вопросы. Прибор пишет данные во внутренний архив, имеющий ограниченный размер. Измерение присходит по изменению климата. Обрати внимание на разрядность параметра. На кой ляд такая точность, да и не даст ни один сельскохозяйственный прибор такого. Таким образом имеем (Скока там секунд в сутках?) число записей*30 байтов длины. Размер архива считай сам. А нужно иметь 5 замеров в час. Тогда будет возможность
иметь 120 записей на сутки. Вот сижу изобретаю унитаз.


 
Sergey13 ©   (2010-02-19 15:04) [22]

> [21] oleg1963lora   (19.02.10 14:41)
> Вот сижу изобретаю унитаз.

Удачи тебе в этом нелегком деле. Есть еще велосипед с квадратными колесами - перспективная вещь.


 
Virgo_Style ©   (2010-02-19 20:42) [23]


> type  EDatabaseError = class(Exception);


По-моему, тут что-то не так. Я не прав?



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

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

Наверх




Память: 0.52 MB
Время: 0.268 c
15-1269714022
Jeer
2010-03-27 21:20
2010.08.27
7-й чемпион мира по шахматам


2-1274285164
lewka
2010-05-19 20:06
2010.08.27
Компас 3D и Delphi. Работа с эскизами


2-1271183717
dixa
2010-04-13 22:35
2010.08.27
подстановка значения в созданный тип


2-1273230896
romario
2010-05-07 15:14
2010.08.27
Не работает функция trim


2-1274169749
Sergey2
2010-05-18 12:02
2010.08.27
Перехватить ошибку при выполнении хранимой процедуры