Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по компонентам для Delphi, C++ Builder 2

Автор: freddom1234
Дата сообщения: 20.03.2007 13:15
Ищу компонент для отслеживания изменений проводимых юзверем в датасетах через грид.
Автор: Vixoid
Дата сообщения: 20.03.2007 13:54
freddom1234
А точнее? Чё за база? Через чё подключаешься? Какую инфу хотел бы видеть?
Автор: freddom1234
Дата сообщения: 20.03.2007 13:59
Вообще я нашел TSMDatasetLog - но смущает цена (20 баксов) - и отсутствие альтернативы. А вообще база FireBird, компоненты IBExpress (проект существует уже 5 лет) а датасеты простые (TDataset). Хочу сделать логгинг для юзверей - чего делали, какие значения вбивали, что изменяли и т.п.
Автор: Samotek
Дата сообщения: 20.03.2007 14:02
oan42
Интересно , а DBX 4 - альтернатива ODAC, DOA?
Автор: OXDBA
Дата сообщения: 20.03.2007 14:05
freddom1234
IbExpert->Инструменты->Менеджер протоколов данных сохранит твои 20 баксов
Автор: freddom1234
Дата сообщения: 20.03.2007 14:16
OXDBA:

Ну конечно это здорово, но ставить каждому юзверю (а у меня их >500) по IBExperty или следить за центральной базой это здорово, но меня не интересует изменение данных на уровне таблицы или базы - меня инетересует изменение данных на конкретных датасетах (т.е. на конкретно выбранных данных). Кстати ищу именно КОМПОНЕНТ поскольку есть исходники системы. А репорт на уровне генераторов уже лепили - ничего хорошего неполучилось - база только пухнет безразмерно
Автор: oan42
Дата сообщения: 20.03.2007 14:16
Samotek
На sql.ru Дмитрий Арефьев (разработчик AnyDAC) очень хвалил DBX из D2007,
мол, сильно развился, хорошо спроектирован, стал шустрее и т.п.

Я с D2007 еще не работал и пока не собираюсь.
Хотелось бы надеяться, но верится с трудом.
Как всегда, отрапортуют о супер-пупер технологии, и, не доведя до ума,
побегут дальше в новомодное русло.
Потом, лет через 5 снизойдут до проблем, набивших у всех оскомину,
и так по кругу.
Автор: SergeBS
Дата сообщения: 20.03.2007 14:19
freddom1234
У Уфимцева была статья, как это без особых напрягов (практически автоматом) сделать для MS SQL. Скрипт для создания таблицы лога и триггеров. Если склероз не изменяет (я ЖарПтицей последнее время не занимаюсь) - что-то подобное было на www.ibase.ru. Или на SQL.RU - не помню точно. Никаких компонент не понадобится вообще. Что есть несомненный плюс.
Автор: vipettut
Дата сообщения: 20.03.2007 15:10
freddom1234,

если только через грид, то юзай события грида.

если на уровне базы - юзай триггеры firebird'а
Автор: OXDBA
Дата сообщения: 20.03.2007 15:19

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



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

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

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

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

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

Безразмерно это сколько? Где опухоль? Кол-во записей в логе действий? в логе значений полей? Копится мусор? Сколько изменений за ед. времени делает оператор?
Автор: Vixoid
Дата сообщения: 20.03.2007 15:21
freddom1234
Делал под MS SQL, всё на сервере (триггеры)! _SQL.RU - тебе поможет, почитай не пожалеешь?
Автор: OXDBA
Дата сообщения: 20.03.2007 15:25
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;
Автор: SergeBS
Дата сообщения: 20.03.2007 17:59
freddom1234

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


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

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



Автор: freddom1234
Дата сообщения: 21.03.2007 13:02
SergeBS:
Что-то не въезжаю. С каждого юзера по 1 р. - и почти вся сумма наберется. Что за задача такая, что юзеров больше 500, а на компонент 20 баков жалко? На логгирование ТАКОЙ толпы?
20 баксов нежалко, и мало того - непроблема, у меня все компоненты официально куплены, включая сам Делфи и прочую лабуду (всего около 3000 баксов). Смущает именно ЦЕНА - за 20 баксов какая может быть поддержка? Поэотму стал искать альтернативу - ненашел.

OXDBA:
Спасибо, уже начал, наверное лучше самому, чем на что-то заморачиваться...

Извиняюсь за очепятку - собирали именно на триггерах, писали в лог-таблицу, там в общем тип события (отдельный справочник), и сама таблица значений. В проекте активно используемых таблиц порядка 50, количество транзакций и обработок... дофига короче - сейчас статистику дать немогу. И самое главное - большинство юзверей коннектится под одним - поэтому определить какой юзер сделал какое изменеие в базе определить невозможно. А база пухнет так- самих данных скажем 250 мегов, а 750 мегов - лог. Поэтому принял решение писать не с базы а с приложения, логи вести отдельно по юзерам (авторизация винды+имя компа в сети). Осталось за малым - поскольку лог надо вести из порядка 60 форм - то решил облегчить себе жизнь взяв готовую компоненту. Ну типа прицепил к датасету и сливай данные в лог - невышло - нельзя себе жизнь облегчать.

Короче - чего хорошо юзеру - смерть программисту, и чего хорошо юзеру - смерть программеру

Добавлено:
Ксатати незнаю в тему или нет - если кому надо доведенную до ума компоненту TMSCETools (я ее переписал нафиг процентов на 30) - могу поделиться. Она предназначена для работы с базами CEDB и EDB на PocketPC под Windows Mobile из под Делфи разумеется. Проверено на версии 2003 и 5.0. Кстати в свое время (и до сих пор) - альтернативы ей нет - купил и пожалел - писано было достаточно криворуко.
Автор: oan42
Дата сообщения: 21.03.2007 13:41
freddom1234 Кому нужно TMSCETools?
Приму с благодарностью. Посмотрите ПМ.
Автор: mirfut
Дата сообщения: 21.03.2007 15:49
Может кто поделится опытом.
С помощью компонента Indy 10 IdFTP пытаюсь зайти на FTP и получить ВЕСЬ доступный список директорий и файлов в них. Понимаю, что процедура или функция должна быть рекурсивная, но что-то мозги не варят как это реализовать.
Автор: OXDBA
Дата сообщения: 21.03.2007 17:28
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 не растет случайно? (Это я на всякий случай спрашиваю, вдруг вы статистику не собираете )

Автор: George_Lucky
Дата сообщения: 22.03.2007 09:20
Хочу получить уникальный идентификатор компа, каким образом его получить?
Автор: Vixoid
Дата сообщения: 22.03.2007 09:27
George_Lucky
А поконкретней! Для чего?
Есть MachineID - вроде генерит ID по нескольким параметрам!
Автор: George_Lucky
Дата сообщения: 22.03.2007 09:56
Vixoid
защитить прогу от несанкционированного копирования на другой комп.
берем номер компа - и сверяем с активированным ключем
если при разборе того и другого получается одинаковое значение значит все ок.
ежели нет - прога не будет работать
Автор: relictus
Дата сообщения: 22.03.2007 10:03

Цитата:
берем номер компа - и сверяем с активированным ключем

... и этот момент сверки даже начинающий кулхацкер сможет очень легко найти и модифицировать так, что прога будет думать, что ключ верный. Вот это надо учесть...
Автор: George_Lucky
Дата сообщения: 22.03.2007 10:20
relictus
это понятно... но прога узко-специфичная, хак-спецов в этой области ничтожно мало...
потому меня пока подобный вариант устоит...

итак, порекомендуйте, что стоит использовать
заранее спасибо за участие
Автор: relictus
Дата сообщения: 22.03.2007 10:49
George_Lucky
Я делал привязку к HDD с помощью THDDInfo от _http://artsoft.nm.ru/
За три года использования проги никто еще не отломал защиту, хотя прога тоже узкоспецифичная...
Автор: George_Lucky
Дата сообщения: 22.03.2007 11:23
relictus
спасибо - попробую
Автор: lodyr
Дата сообщения: 22.03.2007 12:27
George_Lucky
Посмотрите и это:
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.

Автор: Vixoid
Дата сообщения: 22.03.2007 13:15
Нужен простенький DBTreeView, кто знает?
Автор: drSerj
Дата сообщения: 22.03.2007 16:10

Цитата:
Нужен простенький DBTreeView, кто знает?

http://www.torry.net/quicksearchd.php?String=dbtree&Title=Yes
выбирай, их там несколько.

Добавлено:

Цитата:
защитить прогу от несанкционированного копирования на другой комп.
берем номер компа - и сверяем с активированным ключем
если при разборе того и другого получается одинаковое значение значит все ок.
ежели нет - прога не будет работать

Я недавно сам столкнулся с подобной проблемой, нашел десяток прог, которые это делают, попутно ставя защиты от взлома, компрессирование и т.д. Но... как быть, если клиент делает апгрейд, а в наше время - это явление постоянное. Каждый раз выписывать новые ключи ? А где гарантия, что он просто не поставит под видом апгрейда программу на другие машины? Да и выписывать новые ключи, если клиентов много - тоже неудобно. Единственное что приходит в голову - отслеживать несколько компонентов компьютера (винт, материнка, видео, проц) и если меняется что-то одно - автоматом формировать новый ключ...
Автор: Arvur
Дата сообщения: 22.03.2007 23:21
freddom1234

Цитата:
Ксатати незнаю в тему или нет - если кому надо доведенную до ума компоненту TMSCETools (я ее переписал нафиг процентов на 30) - могу поделиться. Она предназначена для работы с базами CEDB и EDB на PocketPC под Windows Mobile из под Делфи разумеется. Проверено на версии 2003 и 5.0. Кстати в свое время (и до сих пор) - альтернативы ей нет - купил и пожалел - писано было достаточно криворуко.

Если можно - кинь мне на профильное мыло плиз. Thanx!
Автор: Shaman2
Дата сообщения: 23.03.2007 01:14

Цитата:
Я недавно сам столкнулся с подобной проблемой, нашел десяток прог, которые это делают, попутно ставя защиты от взлома, компрессирование и т.д. Но... как быть, если клиент делает апгрейд, а в наше время - это явление постоянное. Каждый раз выписывать новые ключи ? А где гарантия, что он просто не поставит под видом апгрейда программу на другие машины? Да и выписывать новые ключи, если клиентов много - тоже неудобно. Единственное что приходит в голову - отслеживать несколько компонентов компьютера (винт, материнка, видео, проц) и если меняется что-то одно - автоматом формировать новый ключ


Я тоже перепробовал несколько вариантов, и всеже выдаю новый ключ, при этом пытаюсь блокировать старый (он у меня из трех частей)


Добавлено:
freddom1234, откуда можно скачать твою TMSCETools ?
Автор: Vixoid
Дата сообщения: 23.03.2007 07:52
drSerj
Про DBTreeView! Понравился DynamicTreeView, но чёта нехватает или...! Типа такойже тока с перламутровыми пуговицами! Мож кто работал сним поможите?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: Вызов файла по относит пути и определение буквы СД-рома


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.