Ищу компонент для отслеживания изменений проводимых юзверем в датасетах через грид.
» Вопросы по компонентам для Delphi, C++ Builder 2
freddom1234
А точнее? Чё за база? Через чё подключаешься? Какую инфу хотел бы видеть?
А точнее? Чё за база? Через чё подключаешься? Какую инфу хотел бы видеть?
Вообще я нашел TSMDatasetLog - но смущает цена (20 баксов) - и отсутствие альтернативы. А вообще база FireBird, компоненты IBExpress (проект существует уже 5 лет) а датасеты простые (TDataset). Хочу сделать логгинг для юзверей - чего делали, какие значения вбивали, что изменяли и т.п.
oan42
Интересно , а DBX 4 - альтернатива ODAC, DOA?
Интересно , а DBX 4 - альтернатива ODAC, DOA?
freddom1234
IbExpert->Инструменты->Менеджер протоколов данных сохранит твои 20 баксов
IbExpert->Инструменты->Менеджер протоколов данных сохранит твои 20 баксов
OXDBA:
Ну конечно это здорово, но ставить каждому юзверю (а у меня их >500) по IBExperty или следить за центральной базой это здорово, но меня не интересует изменение данных на уровне таблицы или базы - меня инетересует изменение данных на конкретных датасетах (т.е. на конкретно выбранных данных). Кстати ищу именно КОМПОНЕНТ поскольку есть исходники системы. А репорт на уровне генераторов уже лепили - ничего хорошего неполучилось - база только пухнет безразмерно
Ну конечно это здорово, но ставить каждому юзверю (а у меня их >500) по IBExperty или следить за центральной базой это здорово, но меня не интересует изменение данных на уровне таблицы или базы - меня инетересует изменение данных на конкретных датасетах (т.е. на конкретно выбранных данных). Кстати ищу именно КОМПОНЕНТ поскольку есть исходники системы. А репорт на уровне генераторов уже лепили - ничего хорошего неполучилось - база только пухнет безразмерно
Samotek
На sql.ru Дмитрий Арефьев (разработчик AnyDAC) очень хвалил DBX из D2007,
мол, сильно развился, хорошо спроектирован, стал шустрее и т.п.
Я с D2007 еще не работал и пока не собираюсь.
Хотелось бы надеяться, но верится с трудом.
Как всегда, отрапортуют о супер-пупер технологии, и, не доведя до ума,
побегут дальше в новомодное русло.
Потом, лет через 5 снизойдут до проблем, набивших у всех оскомину,
и так по кругу.
На sql.ru Дмитрий Арефьев (разработчик AnyDAC) очень хвалил DBX из D2007,
мол, сильно развился, хорошо спроектирован, стал шустрее и т.п.
Я с D2007 еще не работал и пока не собираюсь.
Хотелось бы надеяться, но верится с трудом.
Как всегда, отрапортуют о супер-пупер технологии, и, не доведя до ума,
побегут дальше в новомодное русло.
Потом, лет через 5 снизойдут до проблем, набивших у всех оскомину,
и так по кругу.
freddom1234
У Уфимцева была статья, как это без особых напрягов (практически автоматом) сделать для MS SQL. Скрипт для создания таблицы лога и триггеров. Если склероз не изменяет (я ЖарПтицей последнее время не занимаюсь) - что-то подобное было на www.ibase.ru. Или на SQL.RU - не помню точно. Никаких компонент не понадобится вообще. Что есть несомненный плюс.
У Уфимцева была статья, как это без особых напрягов (практически автоматом) сделать для MS SQL. Скрипт для создания таблицы лога и триггеров. Если склероз не изменяет (я ЖарПтицей последнее время не занимаюсь) - что-то подобное было на www.ibase.ru. Или на SQL.RU - не помню точно. Никаких компонент не понадобится вообще. Что есть несомненный плюс.
freddom1234,
если только через грид, то юзай события грида.
если на уровне базы - юзай триггеры firebird'а
если только через грид, то юзай события грида.
если на уровне базы - юзай триггеры firebird'а
Цитата:
Ну конечно это здорово, но ставить каждому юзверю (а у меня их >500) по IBExperty
Цитата:
но меня не интересует изменение данных на уровне таблицы или базы - меня инетересует изменение данных на конкретных датасетах (т.е. на конкретно выбранных данных).
Как один из вариантов
IbDataset1.Post;// BeforePost/AfterPost сбросили в лог
try
IbDataSet1.Transaction.Commit;
except
on E:...
end;
Ничего не смущает?
Цитата:
А репорт на уровне генераторов уже лепили
Генераторов? Может триггеров? А отчеты тут каким боком?
Цитата:
база только пухнет безразмерно
Безразмерно это сколько? Где опухоль? Кол-во записей в логе действий? в логе значений полей? Копится мусор? Сколько изменений за ед. времени делает оператор?
freddom1234
Делал под MS SQL, всё на сервере (триггеры)! _SQL.RU - тебе поможет, почитай не пожалеешь?
Делал под MS SQL, всё на сервере (триггеры)! _SQL.RU - тебе поможет, почитай не пожалеешь?
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;
Нууу если очень хочется головной боли....
Как вариант лог апдейтов
Код:
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;
freddom1234
Цитата:
Цитата:
Что-то не въезжаю. С каждого юзера по 1 р. - и почти вся сумма наберется. Что за задача такая, что юзеров больше 500, а на компонент 20 баков жалко? На логгирование ТАКОЙ толпы?
Цитата:
Вообще я нашел TSMDatasetLog - но смущает цена (20 баксов)
Цитата:
Ну конечно это здорово, но ставить каждому юзверю (а у меня их >500)
Что-то не въезжаю. С каждого юзера по 1 р. - и почти вся сумма наберется. Что за задача такая, что юзеров больше 500, а на компонент 20 баков жалко? На логгирование ТАКОЙ толпы?
SergeBS:
Что-то не въезжаю. С каждого юзера по 1 р. - и почти вся сумма наберется. Что за задача такая, что юзеров больше 500, а на компонент 20 баков жалко? На логгирование ТАКОЙ толпы?
20 баксов нежалко, и мало того - непроблема, у меня все компоненты официально куплены, включая сам Делфи и прочую лабуду (всего около 3000 баксов). Смущает именно ЦЕНА - за 20 баксов какая может быть поддержка? Поэотму стал искать альтернативу - ненашел.
OXDBA:
Спасибо, уже начал, наверное лучше самому, чем на что-то заморачиваться...
Извиняюсь за очепятку - собирали именно на триггерах, писали в лог-таблицу, там в общем тип события (отдельный справочник), и сама таблица значений. В проекте активно используемых таблиц порядка 50, количество транзакций и обработок... дофига короче - сейчас статистику дать немогу. И самое главное - большинство юзверей коннектится под одним - поэтому определить какой юзер сделал какое изменеие в базе определить невозможно. А база пухнет так- самих данных скажем 250 мегов, а 750 мегов - лог. Поэтому принял решение писать не с базы а с приложения, логи вести отдельно по юзерам (авторизация винды+имя компа в сети). Осталось за малым - поскольку лог надо вести из порядка 60 форм - то решил облегчить себе жизнь взяв готовую компоненту. Ну типа прицепил к датасету и сливай данные в лог - невышло - нельзя себе жизнь облегчать.
Короче - чего хорошо юзеру - смерть программисту, и чего хорошо юзеру - смерть программеру
Добавлено:
Ксатати незнаю в тему или нет - если кому надо доведенную до ума компоненту TMSCETools (я ее переписал нафиг процентов на 30) - могу поделиться. Она предназначена для работы с базами CEDB и EDB на PocketPC под Windows Mobile из под Делфи разумеется. Проверено на версии 2003 и 5.0. Кстати в свое время (и до сих пор) - альтернативы ей нет - купил и пожалел - писано было достаточно криворуко.
Что-то не въезжаю. С каждого юзера по 1 р. - и почти вся сумма наберется. Что за задача такая, что юзеров больше 500, а на компонент 20 баков жалко? На логгирование ТАКОЙ толпы?
20 баксов нежалко, и мало того - непроблема, у меня все компоненты официально куплены, включая сам Делфи и прочую лабуду (всего около 3000 баксов). Смущает именно ЦЕНА - за 20 баксов какая может быть поддержка? Поэотму стал искать альтернативу - ненашел.
OXDBA:
Спасибо, уже начал, наверное лучше самому, чем на что-то заморачиваться...
Извиняюсь за очепятку - собирали именно на триггерах, писали в лог-таблицу, там в общем тип события (отдельный справочник), и сама таблица значений. В проекте активно используемых таблиц порядка 50, количество транзакций и обработок... дофига короче - сейчас статистику дать немогу. И самое главное - большинство юзверей коннектится под одним - поэтому определить какой юзер сделал какое изменеие в базе определить невозможно. А база пухнет так- самих данных скажем 250 мегов, а 750 мегов - лог. Поэтому принял решение писать не с базы а с приложения, логи вести отдельно по юзерам (авторизация винды+имя компа в сети). Осталось за малым - поскольку лог надо вести из порядка 60 форм - то решил облегчить себе жизнь взяв готовую компоненту. Ну типа прицепил к датасету и сливай данные в лог - невышло - нельзя себе жизнь облегчать.
Короче - чего хорошо юзеру - смерть программисту, и чего хорошо юзеру - смерть программеру
Добавлено:
Ксатати незнаю в тему или нет - если кому надо доведенную до ума компоненту TMSCETools (я ее переписал нафиг процентов на 30) - могу поделиться. Она предназначена для работы с базами CEDB и EDB на PocketPC под Windows Mobile из под Делфи разумеется. Проверено на версии 2003 и 5.0. Кстати в свое время (и до сих пор) - альтернативы ей нет - купил и пожалел - писано было достаточно криворуко.
freddom1234 Кому нужно TMSCETools?
Приму с благодарностью. Посмотрите ПМ.
Приму с благодарностью. Посмотрите ПМ.
Может кто поделится опытом.
С помощью компонента Indy 10 IdFTP пытаюсь зайти на FTP и получить ВЕСЬ доступный список директорий и файлов в них. Понимаю, что процедура или функция должна быть рекурсивная, но что-то мозги не варят как это реализовать.
С помощью компонента Indy 10 IdFTP пытаюсь зайти на FTP и получить ВЕСЬ доступный список директорий и файлов в них. Понимаю, что процедура или функция должна быть рекурсивная, но что-то мозги не варят как это реализовать.
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 не растет случайно? (Это я на всякий случай спрашиваю, вдруг вы статистику не собираете )
Вот одна из баз:
БД - 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 не растет случайно? (Это я на всякий случай спрашиваю, вдруг вы статистику не собираете )
Хочу получить уникальный идентификатор компа, каким образом его получить?
George_Lucky
А поконкретней! Для чего?
Есть MachineID - вроде генерит ID по нескольким параметрам!
А поконкретней! Для чего?
Есть MachineID - вроде генерит ID по нескольким параметрам!
Vixoid
защитить прогу от несанкционированного копирования на другой комп.
берем номер компа - и сверяем с активированным ключем
если при разборе того и другого получается одинаковое значение значит все ок.
ежели нет - прога не будет работать
защитить прогу от несанкционированного копирования на другой комп.
берем номер компа - и сверяем с активированным ключем
если при разборе того и другого получается одинаковое значение значит все ок.
ежели нет - прога не будет работать
Цитата:
берем номер компа - и сверяем с активированным ключем
... и этот момент сверки даже начинающий кулхацкер сможет очень легко найти и модифицировать так, что прога будет думать, что ключ верный. Вот это надо учесть...
relictus
это понятно... но прога узко-специфичная, хак-спецов в этой области ничтожно мало...
потому меня пока подобный вариант устоит...
итак, порекомендуйте, что стоит использовать
заранее спасибо за участие
это понятно... но прога узко-специфичная, хак-спецов в этой области ничтожно мало...
потому меня пока подобный вариант устоит...
итак, порекомендуйте, что стоит использовать
заранее спасибо за участие
George_Lucky
Я делал привязку к HDD с помощью THDDInfo от _http://artsoft.nm.ru/
За три года использования проги никто еще не отломал защиту, хотя прога тоже узкоспецифичная...
Я делал привязку к HDD с помощью THDDInfo от _http://artsoft.nm.ru/
За три года использования проги никто еще не отломал защиту, хотя прога тоже узкоспецифичная...
relictus
спасибо - попробую
спасибо - попробую
George_Lucky
Посмотрите и это:
Wjhsoft Software, China - http://www.cnware.com/
HardInfo
компонента для доступа к BIOS без дополнительных VXD/DLL и рядом дополнительных функций
Например, можно комбинируя данные из BIOS и серийный номер HDD/CPU
создать уникальный идентификатор компьютера.
Цитата:
Посмотрите и это:
Wjhsoft Software, China - http://www.cnware.com/
HardInfo
компонента для доступа к BIOS без дополнительных VXD/DLL и рядом дополнительных функций
Например, можно комбинируя данные из BIOS и серийный номер HDD/CPU
создать уникальный идентификатор компьютера.
Цитата:
Hardinfo component let you collect mechine information such as CPU type,CPUID, CPU Vendor,BIOS SerialNumber,Hard Disk SerialNumber and ModalNumber,MAC address easily.Such infomation is direct from hard interface,not from registry,So it can not be changed by user.It works on Win98/NT/Win2000/XP/Win2003 and in any accounts rights. Using hardinfo component is quite easy ,just drop the component into delphi form, all infomation is on the component's property.no additional DLL or VXD need
Feature:
* Get BIOS SerialNumber,CPU ID,CPU verson ,HardDisk SerialNumber,ModalNumber,Revision ,MAC Address in Win9x/WInNT/WIn2000/XP/Win2003 and with any acount rights.
* Read BIOS ROM memory data like array.
* All datas are direct from hardware interface ,not from registry.
* Pure Delphi VCL Component with full sourcecode.
Нужен простенький DBTreeView, кто знает?
Цитата:
Нужен простенький DBTreeView, кто знает?
http://www.torry.net/quicksearchd.php?String=dbtree&Title=Yes
выбирай, их там несколько.
Добавлено:
Цитата:
защитить прогу от несанкционированного копирования на другой комп.
берем номер компа - и сверяем с активированным ключем
если при разборе того и другого получается одинаковое значение значит все ок.
ежели нет - прога не будет работать
Я недавно сам столкнулся с подобной проблемой, нашел десяток прог, которые это делают, попутно ставя защиты от взлома, компрессирование и т.д. Но... как быть, если клиент делает апгрейд, а в наше время - это явление постоянное. Каждый раз выписывать новые ключи ? А где гарантия, что он просто не поставит под видом апгрейда программу на другие машины? Да и выписывать новые ключи, если клиентов много - тоже неудобно. Единственное что приходит в голову - отслеживать несколько компонентов компьютера (винт, материнка, видео, проц) и если меняется что-то одно - автоматом формировать новый ключ...
freddom1234
Цитата:
Если можно - кинь мне на профильное мыло плиз. Thanx!
Цитата:
Ксатати незнаю в тему или нет - если кому надо доведенную до ума компоненту TMSCETools (я ее переписал нафиг процентов на 30) - могу поделиться. Она предназначена для работы с базами CEDB и EDB на PocketPC под Windows Mobile из под Делфи разумеется. Проверено на версии 2003 и 5.0. Кстати в свое время (и до сих пор) - альтернативы ей нет - купил и пожалел - писано было достаточно криворуко.
Если можно - кинь мне на профильное мыло плиз. Thanx!
Цитата:
Я недавно сам столкнулся с подобной проблемой, нашел десяток прог, которые это делают, попутно ставя защиты от взлома, компрессирование и т.д. Но... как быть, если клиент делает апгрейд, а в наше время - это явление постоянное. Каждый раз выписывать новые ключи ? А где гарантия, что он просто не поставит под видом апгрейда программу на другие машины? Да и выписывать новые ключи, если клиентов много - тоже неудобно. Единственное что приходит в голову - отслеживать несколько компонентов компьютера (винт, материнка, видео, проц) и если меняется что-то одно - автоматом формировать новый ключ
Я тоже перепробовал несколько вариантов, и всеже выдаю новый ключ, при этом пытаюсь блокировать старый (он у меня из трех частей)
Добавлено:
freddom1234, откуда можно скачать твою TMSCETools ?
drSerj
Про DBTreeView! Понравился DynamicTreeView, но чёта нехватает или...! Типа такойже тока с перламутровыми пуговицами! Мож кто работал сним поможите?
Про DBTreeView! Понравился DynamicTreeView, но чёта нехватает или...! Типа такойже тока с перламутровыми пуговицами! Мож кто работал сним поможите?
Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
Предыдущая тема: Вызов файла по относит пути и определение буквы СД-рома
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.