Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизКак маскировать исключение 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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.062 c