Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как маскировать исключение EDatabaseError?


Страницы:   1 2

oleg1963lora ©   (2010-02-19 10:23:00) 

Здравствуйте уважаемые Мастера? Имеется МДБ-файл со структурой:
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;

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


Virgo_Style   (2010-02-19 20:42:00) [1]


> type  EDatabaseError = class(Exception);


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


Sergey13   (2010-02-19 15:04:00) [2]

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

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


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


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

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


Sergey13   (2010-02-19 14:08:00) [4]

> [17] oleg1963lora   (19.02.10 13:24)

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


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

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


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


> oleg1963lora   (19.02.10 13:24) [17]


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


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


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

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


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

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

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


Sergey13   (2010-02-19 12:52:00) [9]

> [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 12:46:00) [10]

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


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


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

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


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

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


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

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


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

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


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


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


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

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


12   (2010-02-19 11:53:00) [16]

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

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

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


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


>          Form1.ADOTable1.Post;
>

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


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

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


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

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


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

> [4] oleg1963lora   (19.02.10 11:39)

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


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


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

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо