Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по компонентам для Delphi, C++ Builder 2

Модерирует : ShIvADeSt

ShIvADeSt (20-06-2007 07:33): http://forum.ru-board.com/topic.cgi?forum=33&topic=8529  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

   

freddom1234

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ищу компонент для отслеживания изменений  проводимых юзверем в датасетах через грид.

Всего записей: 11 | Зарегистр. 05-05-2006 | Отправлено: 13:15 20-03-2007
Vixoid



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
freddom1234
А точнее? Чё за база? Через чё подключаешься? Какую инфу хотел бы видеть?

Всего записей: 351 | Зарегистр. 16-01-2003 | Отправлено: 13:54 20-03-2007
freddom1234

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вообще я нашел TSMDatasetLog - но смущает цена (20 баксов) - и отсутствие альтернативы. А вообще база FireBird, компоненты IBExpress (проект существует уже 5 лет) а датасеты простые (TDataset). Хочу сделать логгинг для юзверей - чего делали, какие значения вбивали, что изменяли и т.п.

Всего записей: 11 | Зарегистр. 05-05-2006 | Отправлено: 13:59 20-03-2007
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oan42
Интересно , а DBX 4 - альтернатива ODAC, DOA?

Всего записей: 2448 | Зарегистр. 18-05-2005 | Отправлено: 14:02 20-03-2007 | Исправлено: Samotek, 14:03 20-03-2007
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
freddom1234
IbExpert->Инструменты->Менеджер протоколов данных сохранит твои 20 баксов

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 14:05 20-03-2007
freddom1234

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OXDBA:
 
Ну конечно это здорово, но ставить каждому юзверю (а у меня их >500) по IBExperty или следить за центральной базой это здорово, но меня не интересует изменение данных на уровне таблицы или базы - меня инетересует изменение данных на конкретных датасетах (т.е. на конкретно выбранных данных). Кстати ищу именно КОМПОНЕНТ поскольку есть исходники системы. А репорт на уровне генераторов уже лепили - ничего хорошего неполучилось - база только пухнет безразмерно

Всего записей: 11 | Зарегистр. 05-05-2006 | Отправлено: 14:16 20-03-2007
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Samotek
На sql.ru Дмитрий Арефьев (разработчик AnyDAC) очень хвалил DBX из D2007,
мол, сильно развился, хорошо спроектирован, стал шустрее и т.п.
 
Я с D2007 еще не работал и пока не собираюсь.
Хотелось бы надеяться, но верится с трудом.
Как всегда, отрапортуют о супер-пупер технологии, и, не доведя до ума,
побегут дальше в новомодное русло.  
Потом, лет через 5 снизойдут до проблем, набивших у всех оскомину,
и так по кругу.

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 14:16 20-03-2007 | Исправлено: oan42, 14:19 20-03-2007
SergeBS



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
freddom1234
У Уфимцева была статья, как это без особых напрягов (практически автоматом) сделать для MS SQL. Скрипт для создания таблицы лога и триггеров. Если склероз не изменяет (я ЖарПтицей последнее время не занимаюсь) - что-то подобное было на www.ibase.ru.  Или на SQL.RU - не помню точно. Никаких компонент не понадобится вообще. Что есть несомненный плюс.

Всего записей: 272 | Зарегистр. 19-04-2005 | Отправлено: 14:19 20-03-2007
vipettut



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
freddom1234,
 
если только через грид, то юзай события грида.
 
если на уровне базы - юзай триггеры firebird'а

Всего записей: 679 | Зарегистр. 17-03-2006 | Отправлено: 15:10 20-03-2007
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ну конечно это здорово, но ставить каждому юзверю (а у меня их >500) по IBExperty



Цитата:
но меня не интересует изменение данных на уровне таблицы или базы - меня инетересует изменение данных на конкретных датасетах (т.е. на конкретно выбранных данных).

Как один из вариантов
IbDataset1.Post;// BeforePost/AfterPost  сбросили в лог
try
 IbDataSet1.Transaction.Commit;
except
  on E:...
end;
Ничего не смущает?

Цитата:
А репорт на уровне генераторов уже лепили

Генераторов? Может триггеров? А отчеты тут каким боком?

Цитата:
база только пухнет безразмерно

Безразмерно это сколько? Где опухоль? Кол-во записей в логе действий? в логе значений полей? Копится мусор? Сколько изменений за ед. времени делает оператор?

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 15:19 20-03-2007
Vixoid



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
freddom1234
Делал под MS SQL, всё на сервере (триггеры)! _SQL.RU - тебе поможет, почитай не пожалеешь?

Всего записей: 351 | Зарегистр. 16-01-2003 | Отправлено: 15:21 20-03-2007
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vipettut
Нууу если очень хочется головной боли....
Как вариант лог апдейтов

Код:
 
procedure DoLogBeforePost(DataSet: TDataSet);// если нужны OldValue
begin
  // Пишем в лог Now; DataSet.Name;'BeforePost'
  // DataSet.Fields[0]..DataSet.Fields[Count-1].OldValue и NewValue
end;
 
procedure DoLogAfterPost(DataSet: TDataSet);// если нужен факт изменения без OldValue
begin
  // Пишем в лог Now; DataSet.Name;'AfterPost'...
end;
 

и назначаем обработчики

Код:
 
  for ctI := 0 to DataModule1.ComponentCount - 1 do
  begin
    if DataModule1.Components[ctI].ClassName = 'TIbDataSet' then
      TIBDataSet(DataModule1.Components[ctI]).AfterPost := DoLogAfterPost;
    // и т.д.
  end;
 

Не хотел бы я быть админом, ковыряющим такие логи

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 15:25 20-03-2007 | Исправлено: OXDBA, 15:29 20-03-2007
SergeBS



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
freddom1234

Цитата:
Вообще я нашел TSMDatasetLog - но смущает цена (20 баксов)  


Цитата:
Ну конечно это здорово, но ставить каждому юзверю (а у меня их >500)  

Что-то не въезжаю. С каждого юзера по 1 р. - и почти вся сумма наберется. Что за задача такая, что юзеров больше 500, а на компонент 20 баков жалко? На логгирование ТАКОЙ толпы?
 
 
 

Всего записей: 272 | Зарегистр. 19-04-2005 | Отправлено: 17:59 20-03-2007
freddom1234

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergeBS:
Что-то не въезжаю. С каждого юзера по 1 р. - и почти вся сумма наберется. Что за задача такая, что юзеров больше 500, а на компонент 20 баков жалко? На логгирование ТАКОЙ толпы?  
20 баксов нежалко, и мало того - непроблема, у меня все компоненты официально куплены, включая сам Делфи и прочую лабуду (всего около 3000 баксов). Смущает именно ЦЕНА - за 20 баксов какая может быть поддержка? Поэотму стал искать альтернативу - ненашел.
 
OXDBA:
Спасибо, уже начал, наверное лучше самому, чем на что-то заморачиваться...
 
Извиняюсь за очепятку - собирали именно на триггерах, писали в лог-таблицу, там в общем тип события (отдельный справочник), и сама таблица значений. В проекте активно используемых таблиц порядка 50, количество транзакций и обработок... дофига короче - сейчас статистику дать немогу. И самое главное - большинство юзверей коннектится  под одним - поэтому определить какой юзер сделал какое изменеие в базе определить невозможно. А база пухнет так- самих данных скажем 250 мегов, а 750 мегов - лог. Поэтому принял решение писать не с базы а с приложения, логи вести отдельно по юзерам (авторизация винды+имя компа в сети). Осталось за малым - поскольку лог надо вести из порядка 60 форм - то решил облегчить себе жизнь взяв готовую компоненту. Ну типа прицепил к датасету и сливай данные в лог - невышло - нельзя себе жизнь облегчать.
 
Короче - чего хорошо юзеру - смерть программисту, и чего хорошо юзеру - смерть программеру
 
Добавлено:
Ксатати незнаю в тему или нет - если кому надо доведенную до ума компоненту TMSCETools (я ее переписал нафиг процентов на 30) - могу поделиться. Она предназначена для работы с базами CEDB и EDB на PocketPC под Windows Mobile из под Делфи разумеется. Проверено на версии 2003 и 5.0. Кстати в свое время (и до сих пор) - альтернативы ей нет - купил и пожалел - писано было достаточно криворуко.

Всего записей: 11 | Зарегистр. 05-05-2006 | Отправлено: 13:02 21-03-2007
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
freddom1234 Кому нужно TMSCETools?
Приму с благодарностью. Посмотрите ПМ.

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 13:41 21-03-2007
mirfut



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может кто поделится опытом.
С помощью компонента Indy 10 IdFTP пытаюсь зайти на FTP и получить ВЕСЬ доступный список директорий и файлов в них. Понимаю, что процедура или функция должна быть рекурсивная, но что-то мозги не варят как это реализовать.

Всего записей: 82 | Зарегистр. 14-12-2005 | Отправлено: 15:49 21-03-2007
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
freddom1234
Вот одна из баз:
БД - 28 535 439 360 байт
~420 000 транзакций/сутки
Лог включен на 142 таблицы
Самописный просмотровщик логов писался за несколько часов.

Цитата:
Спасибо, уже начал

Дело конечно хозяйское, просто многие тебе не зря рекомендуют сделать лог на уровне базы и посылают на sqlru. Если навскидку, то тебе необходимо учитывать что пишущая  транзакция может завершиться откатом, а не коммитом; данные могут модифицироваться триггерами; в БД могут быть FK on delete/update cascade/set default/set null; в хранимых процедурах могут изменяться данные из нескольких таблиц, данные могут быть изменены не из твоего приложения, а из того же эксперта например, и т.д. Оно тебе надо возиться?
Тем более если пользователей >500, то изменение чего-нибудь в алгоритме логирования = замене софта на 500 рабочих местах!
А вот то, что пользователи лезут в базу под одним логином, это не есть гуд имхо. Нет в FB2.1 конечно можно получить IP хоста, с которого коннект пришел но  у нас несколько десятков объектов еще под полуторкой...да и нет еще релиза 2.1.
Короче, логирование на сервере не должно влиять на работу юзверей, если это так, то что-то сделано криво. Размер БД... сейчас самые простенькие винты > 100 гигов. у вас база больше?
Да, кстати, IbdataSet.Transaction судя повсему пишущая + DBGrid + 500 пользователей может привести к серьезному торможению БД. Next Transaction - Oldest Active не растет случайно? (Это я на всякий случай спрашиваю, вдруг вы статистику не собираете )
 

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 17:28 21-03-2007
George_Lucky



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу получить уникальный идентификатор компа, каким образом его получить?

Всего записей: 413 | Зарегистр. 12-09-2002 | Отправлено: 09:20 22-03-2007
Vixoid



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
George_Lucky
А поконкретней! Для чего?
Есть MachineID - вроде генерит ID по нескольким параметрам!

Всего записей: 351 | Зарегистр. 16-01-2003 | Отправлено: 09:27 22-03-2007
George_Lucky



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vixoid
защитить прогу от несанкционированного копирования на другой комп.
берем номер компа - и сверяем с активированным ключем
если при разборе того и другого получается одинаковое значение значит все ок.
ежели нет - прога не будет работать

Всего записей: 413 | Зарегистр. 12-09-2002 | Отправлено: 09:56 22-03-2007
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по компонентам для Delphi, C++ Builder 2
ShIvADeSt (20-06-2007 07:33): http://forum.ru-board.com/topic.cgi?forum=33&topic=8529


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru