Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 811
от 16.05.2007, 08:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 471, Экспертов: 94
В номере:Вопросов: 5, Ответов: 7


Вопрос № 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 база расположенна на сервере. мне нужно написать программу в которой будет вестись лог, кто зашел в программу и что там делал..
Я не знаю как подойти к этой задачи и как ее осуществить. Заранее благодарю за помощь
Отправлен: 10.05.2007, 11:00
Вопрос задал: кадекин Александр Геннадиевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Архангельский Андрей Германович
Здравствуйте, кадекин Александр Геннадиевич!

Я делал это следующим образом:
1) в БД создается таблица протокола
2) в триггерах insert, update, delete прописываются определенные действия, которые записывают информацию в таблицу протокола.
То что должно учитываться зависит от конкретной задачи. Для бухгалтерской программы я отслеживал изменения ключевых полей, например, кредит, дебит, сумма и т.д.
3) Если пользователь приходит в БД со своей клиентской программы, то в этой программе нужно предусмотреть вызов процедур login, Logout. Если он приходит с какой-либо другой программы, например, isql.exe, то вход/выход отследить затруднительно. НО все изменения будут отслежены.
Работает это тихо и надежно. При правильном проектировании протокол занимает немного места.
---------
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 10.05.2007, 11:24

Отвечает: Проходящий Мимо
Здравствуйте, кадекин Александр Геннадиевич!
В дополнение к ответу Архангельского А.Г. я в каждую таблицу добавляю поля
-- кто создал запись
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 файл?
Отправлен: 10.05.2007, 13:47
Вопрос задал: Kakenov Daulet (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 9)

Отвечает: Вадим Викторович Витомский
Здравствуйте, Kakenov Daulet!
Что именно Вы имеете в виду? Просто сборка осуществляется по Ctrl+F9, собрать и выполнить - F9.
Может, вы имеете в виду что-то другое?
Ответ отправил: Вадим Викторович Витомский (статус: 7-ой класс)
Ответ отправлен: 10.05.2007, 14:04

Отвечает: W@NDeReR
Здравствуйте, Kakenov Daulet!
Нажмите комбинацию клавиш Ctrl+F9
или в главном меню выбрать Project->Compile имя вашего проекта

---------
Опыт — дитя мысли, а мысль — дитя действия. Нельзя учиться по книгам.
Ответ отправил: W@NDeReR (статус: 4-ый класс)
Ответ отправлен: 10.05.2007, 15:18


Вопрос № 86.281
У меня еще один вопрос .. в низу привел код программы не хочет отправлять письмо на адрес указанный мной
код перемещён в приложение (edited by Ерёмин А.)

Приложение:

Отправлен: 10.05.2007, 16:04
Вопрос задал: кадекин Александр Геннадиевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: 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.
Код в приложение не вместился, если надо вышлю.
Отправлен: 10.05.2007, 22:14
Вопрос задал: Korolyov Alexandr (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: DimonSoft
Здравствуйте, Korolyov Alexandr!

Код - это, конечно, здорово, но лучше попробуйте разобраться сами (вмешательство посторонних людей в разработку компонента или программы не всегда идёт на пользу).

Итак, по вопросу... Если - значит, скорее всего, где-то не создан какой-то объект. Начните с конструктора (там, как правило, пишут первым делом inherited Create(AOwner); ), если всё нормально, то проверьте последовательность создания всех вспомогательных объектов наподобие TStringList.

Совет от меня. Если какие-либо объекты Вы используете только в одной (одном)процедуре-методе, то объявляйте этот объект в разделе var этой процедуры, создавайте в этой процедуре и удаляйте при любом выходе из процедуры (в том числе (!!!) и по Exit). Если же какие-либо объекты должны хранить свойство компонента, то объявляйте в секции private, создавайте один раз в конструкторе и удаляйте только в деструкторе. Впрочем, мне что-то подсказывает, что дело не в том, как объявлены переменные-объекты.

Спасибо за внимание и удачи!

С уважением, DimonSoft.
Ответ отправил: DimonSoft (статус: 2-ой класс)
Ответ отправлен: 10.05.2007, 23:28
Оценка за ответ: 4
Комментарий оценки:
Да Вы говорите все правильно, но если мой модуль подключить руками и создавать объект моего класса в коде программы, то все работает нормально


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100

В избранное