Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.072 c
15-1273420960
Виктор
2010-05-09 20:02
2010.08.27
Защита приложения


15-1270845004
Юрий
2010-04-10 00:30
2010.08.27
С днем рождения ! 10 апреля 2010 суббота


2-1268835906
user99834
2010-03-17 17:25
2010.08.27
Преобразовать BMP в JPEG, сжать и записать в TMemoryStream


2-1268130767
fford
2010-03-09 13:32
2010.08.27
передача TStream из DLL


15-1263677426
Юрий
2010-01-17 00:30
2010.08.27
С днем рождения ! 17 января 2010 воскресенье





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский