Вопрос № 86234: Доброе время суток !!!!
Уважаемые ЭКСПЕРТЫ у меня к Вам вопрос.
Есть программа на IB7 база расположенна на сервере. мне нужно написать программу в которой будет вестись лог, кто зашел в программу и что там делал..
Я не знаю как подойт...Вопрос № 86258: Уважаемые Эсперты !
Подскажите пожалуйста как собрать delphi-проект в в один exe файл?
..Вопрос № 86281: У меня еще один вопрос .. в низу привел код программы не хочет отправлять письмо на адрес указанный мной <font color=#888888>код перемещён в приложение (edited by <a href=http://rusfaq.ru/info/user/3630>Ерёмин А.</a>)</font>...Вопрос № 86286: У кого-нибудь работало программно добавлять пользователя в любую группу на локальной машине.
Представленный код выдаёт ошибку NERR_GroupNotFound (Не найдена группа), хотя эта группа реально существует.
Спасибо....Вопрос № 86340: День добрый, Уважаемые эксперты!!!
Написал я компонент, установил его, поюзал в приложении.
Все нормально.
А когда закрываю Дельфи (7 версия) пишет:
Access violation to address 00000000. Read of addresss 0000000.
Код в прилож...
Вопрос № 86.234
Доброе время суток !!!!
Уважаемые ЭКСПЕРТЫ у меня к Вам вопрос.
Есть программа на IB7 база расположенна на сервере. мне нужно написать программу в которой будет вестись лог, кто зашел в программу и что там делал..
Я не знаю как подойти к этой задачи и как ее осуществить. Заранее благодарю за помощь
Отвечает: Архангельский Андрей Германович
Здравствуйте, кадекин Александр Геннадиевич!
Я делал это следующим образом:
1) в БД создается таблица протокола
2) в триггерах insert, update, delete прописываются определенные действия, которые записывают информацию в таблицу протокола.
То что должно учитываться зависит от конкретной задачи. Для бухгалтерской программы я отслеживал изменения ключевых полей, например, кредит, дебит, сумма и т.д.
3) Если пользователь приходит в БД со своей клиентской программы, то в этой программе нужно предусмотреть вызов процедур login, Logout. Если он приходит с какой-либо другой программы, например, isql.exe, то вход/выход отследить затруднительно. НО все изменения будут отслежены.
Работает это тихо и надежно. При правильном проектировании протокол занимает немного места.
--------- Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Отвечает: Проходящий Мимо
Здравствуйте, кадекин Александр Геннадиевич!
В дополнение к ответу Архангельского А.Г. я в каждую таблицу добавляю поля
-- кто создал запись
USR_CREAT: VARCHAR(31) DEFAULT current_user NOT NULL
-- когда создана запись
TIME_CREAT: TIMESTAMP DEFAULT current_timestamp NOT NULL
-- кто изменил запись
USR_CHANGE: VARCHAR(31) DEFAULT current_user NOT NULL
-- когда изменена запись
TIME_CHANGE: TIMESTAMP DEFAULT current_timestamp NOT NULL
Для таблиц создаем триггеры после вставки:
CREATE trigger таблица_bi for таблица
active before insert position 0
AS
begin
new.USR_CREAT=CURRENT_USER;
new.TIME_CREAT=current_timestamp;
new.USR_CHANGE=CURRENT_USER;
new.TIME_CHANGE=current_timestamp;
end
Для таблиц создаем триггеры после обновления:
CREATE trigger таблица_au for таблица
active after update position 0
AS
begin
new.USR_CHANGE=CURRENT_USER;
new.TIME_CHANGE=current_timestamp;
end
К логам не обязательно давать доступ всем пользователям, а при даном подходе пользователи могут отслеживать изменения, что часто необходимо при "разборе полетов".
Удачи.
--------- Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 8-ой класс)
Ответ отправлен: 10.05.2007, 12:10
Вопрос № 86.258
Уважаемые Эсперты !
Подскажите пожалуйста как собрать delphi-проект в в один exe файл?
Отвечает: Вадим Викторович Витомский
Здравствуйте, Kakenov Daulet!
Что именно Вы имеете в виду? Просто сборка осуществляется по Ctrl+F9, собрать и выполнить - F9.
Может, вы имеете в виду что-то другое?
Отвечает: W@NDeReR
Здравствуйте, Kakenov Daulet!
Нажмите комбинацию клавиш Ctrl+F9
или в главном меню выбрать Project->Compile имя вашего проекта
--------- Опыт — дитя мысли, а мысль — дитя действия. Нельзя учиться по книгам.
Ответ отправил: W@NDeReR (статус: 4-ый класс)
Ответ отправлен: 10.05.2007, 15:18
Вопрос № 86.281
У меня еще один вопрос .. в низу привел код программы не хочет отправлять письмо на адрес указанный мной код перемещён в приложение (edited by Ерёмин А.)
Отвечает: W@NDeReR
Здравствуйте, кадекин Александр Геннадиевич!
Посмотрите верно ли вы ввели значение в:
ledHost.Text - здесь должен быть указан сервер для отправки почты для mail.ru это smtp.mail.ru для остальных можно узнать на сайте предостовляющие вам услуги электронной почты.
LabeledEdit1.Text - здесь должен быть ваш пароль от почтового ящика
LabeledEdit2.Text- а здесь соответственно пароль
Такой же точно проект я скачивал с http://www.delphisources.ru/ была та же проблема
--------- Опыт — дитя мысли, а мысль — дитя действия. Нельзя учиться по книгам.
Ответ отправил: W@NDeReR (статус: 4-ый класс)
Ответ отправлен: 10.05.2007, 18:29
Вопрос № 86.286
У кого-нибудь работало программно добавлять пользователя в любую группу на локальной машине.
Представленный код выдаёт ошибку NERR_GroupNotFound (Не найдена группа), хотя эта группа реально существует.
Спасибо.
Приложение:
Отправлен: 10.05.2007, 16:24
Вопрос задал: Gladiator (статус: 9-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Уваров Андрей Александрович
Здравствуйте, Gladiator!
Попробуйте использовать ф-ию ansiuppercase для преобразования имени группы в нужный формат.
Вот : здесь опсуждали определение является ли пользователь членом группы. Попробуйте преобразовать в добавление пользователя. + Там верно делаются приведение типов, возможно вы найдете в каком формате вам нужно передавать название группы. (WideChar?)
--------- Обращаться в ICQ: 66550088 (Ally) или E-Mail: AvePassion@GMail.Com
Ответ отправил: Уваров Андрей Александрович (статус: Студент)
Ответ отправлен: 11.05.2007, 12:20 Оценка за ответ: 2 Комментарий оценки: Для меня оказалось сюрпризом , что ф-я AnsiUpperCase используется для преобразования форматов; я всегда считал, что она служит для перевода кириллицы к верхнему регистру. А почему не AnsiLowerCase?
Вопрос № 86.340
День добрый, Уважаемые эксперты!!!
Написал я компонент, установил его, поюзал в приложении.
Все нормально.
А когда закрываю Дельфи (7 версия) пишет:
Access violation to address 00000000. Read of addresss 0000000.
Код в приложение не вместился, если надо вышлю.
Код - это, конечно, здорово, но лучше попробуйте разобраться сами (вмешательство посторонних людей в разработку компонента или программы не всегда идёт на пользу).
Итак, по вопросу... Если - значит, скорее всего, где-то не создан какой-то объект. Начните с конструктора (там, как правило, пишут первым делом inherited Create(AOwner); ), если всё нормально, то проверьте последовательность создания всех вспомогательных объектов наподобие TStringList.
Совет от меня. Если какие-либо объекты Вы используете только в одной (одном)процедуре-методе, то объявляйте этот объект в разделе var этой процедуры, создавайте в этой процедуре и удаляйте при любом выходе из процедуры (в том числе (!!!) и по Exit). Если же какие-либо объекты должны хранить свойство компонента, то объявляйте в секции private, создавайте один раз в конструкторе и удаляйте только в деструкторе. Впрочем, мне что-то подсказывает, что дело не в том, как объявлены переменные-объекты.
Спасибо за внимание и удачи!
С уважением, DimonSoft.
Ответ отправил: DimonSoft (статус: 2-ой класс)
Ответ отправлен: 10.05.2007, 23:28 Оценка за ответ: 4 Комментарий оценки: Да Вы говорите все правильно, но если мой модуль подключить руками и создавать объект моего класса в коде программы, то все работает нормально