Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.31;
Скачать: CL | DM;

Вниз

Допросить базу данных   Найти похожие ветки 

 
Silver_   (2003-03-11 14:55) [0]

1. как спросить у самой таблицы время последней её модификации (записи)
2. как ПРОГРАММНО ловить попытку записи в БД (таблицу) типа MyDBChange(Sender: TDataSet)


 
Silver_   (2003-03-11 15:26) [1]

пояснения к п.1
1. в Access например есть время последней модификации структуры
может есть и время последней модификации записей

п.2. вобще реализуем кто-нить в курсе


 
Silver_   (2003-03-11 15:46) [2]

а как тогда делаете Refresh на БД тока не говорите что берете все таблицы и ... Refresh это ж полная ж. (по времени)


 
zacho ©   (2003-03-11 16:12) [3]

Скажи сначало, какая БД, вряд-ли здесь найдутся телепаты :-)


 
Silver_   (2003-03-11 16:15) [4]

Access

но желательно ПРОГРАММНО


 
Val ©   (2003-03-11 16:25) [5]

Silver_ (11.03.03 15:46)
желание знать справедливо, но вот этот пост меня несколько смущает. раскажите-ка, на кой вам это надо.


 
Silver_   (2003-03-11 16:36) [6]

Чтоб рефрешить тока изменившуюся таблицу
по поводу п. 2. мона навешать триггеров но...
...ПРОГРАММНО - требования такие
1. чтоб быстро и легко адаптировалась к другой СУБД
- не все СУБД поддерживають триггеры к тому же триггеры на каждую таблицу :(((

а если решить п.2. то про п.1. мона забыть

нужно решение хотя бы по одному пункту (любому)


 
Val ©   (2003-03-11 16:47) [7]

>Silver_ (11.03.03 16:36)
Чтоб рефрешить тока изменившуюся таблицу..
а у вас юзеру одновременно вся база показывается, что-ли?
по пункту 2 - триггера тоже программно пишутся :)
по поводу работы без триггеров - так практически все компоненты представления наборов данных имеют события BeforeInsert/Update и т.д. и т.п...


 
Silver_   (2003-03-11 17:31) [8]


> а у вас юзеру одновременно вся база показывается, что-ли?

вобщето нет правда есть некоторые формы где обьекты привязаны к разным таблицам (со связью Master-Detail как правило)
- просто думал как бы в одном месте (по таймеру) сделать рефреш
для любой таблицы без разницы какая показыватся (потому что до этих пор не следил какая показыватся (т.е. не имел глобального указателя на текущую таблицу) - теперь решил поставить
один DBNavigator для всех таблиц и придется следить (чтоб DataSource поправлять))


> по пункту 2 - триггера тоже программно пишутся :)

вот этого ни разу не делал :( , покажи пример (щоб знал) плз.
(ранише писал под SyBase тама триггеры сразу в базу ставил)

по поводу

> BeforeInsert/Update и т.д. и т.п...

я в курсе :) но не хотелось всем DataSet-aм ссылку ставить думал другой подход есть

и било бы касиво если б поставить триггер (BeforeInsert/Update) на БД :))

если есть просим в студию :)


 
Val ©   (2003-03-11 17:48) [9]

и било бы касиво если б поставить триггер (BeforeInsert/Update) на БД :))
что-то вы, уважаемый путаете. триггера ставятся на таблицы понятие бд весьма абстрактно - в dBase это 1 таблица,в Oracle - это ряд схем...и т.д.
триггер ни разу не видели? да пожалуйста ;):
CREATE OR REPLACE TRIGGER trbuhousepaymbase_nomodifyid
BEFORE UPDATE
ON housepaymbase
FOR EACH ROW
WHEN (
New.ID <> Old.ID)
begin
pkg_errors.raise_error(115243);
end;
/


 
MsGuns ©   (2003-03-11 21:49) [10]

А эвентов в аксессе нет ?


 
Silver_   (2003-03-12 13:11) [11]


> триггер ни разу не видели? да пожалуйста ;):

видели тока вручную из проги не писали :) (под SyBase)


> MsGuns © (11.03.03 21:49)
> А эвентов в аксессе нет ?

вроде нет :(

Конкретный пример БД содержит таблиц 30
программой одновременно пользуются юзеров 10 и постоянно вносят изменения в БД
у каждого из ни постоянно должна быть последние изменения

!- Рефреш по таймеру текущую(щие- если на одной форме данные из больше одной) таблицы

*- справедливо но Рефреш происходит медленно если таблицы содержат много записей или
имеют много связаных с ней
Решение не рефрешить если никто не произвел изменения (что мне и нужно)
- следующий этап выполнать Рефреш незаметно для пользователя

!- Триггеры (Before/After Insert,Post...) скажете вы
*- но цеплять ссылку на каждую таблицу мне кажется некрасивым подходом

Вот и ищу другой подход (потому что хочется сделать компонент
вставил в проект а он сам ловит кто изменился, кого менять... :)
или по крайней мере делать все это для всех таблиц в одном месте без ссылки
на какойнибудь там (Before/After Insert,Post...)
- согласитесь не очень удобно добавил таблицу, не забудь про ссылку(и)... :(

!- Хочу вроде Триггеры (Before/After Insert,Post...) на БАЗУ ДАННЫХ (Соединение что-ли) :)))))
MyDBChange(Sender: TDataSet), где Sender это DataSet (а еще лучше TableName из БД :)
в котором (...) запись


 
Соловьев ©   (2003-03-12 13:14) [12]

Может стоить сделать трех звенку и сервак будет рассылать месаги клиентам для обновления?


 
Silver_   (2003-03-12 14:15) [13]


> сервак будет рассылать месаги клиентам для обновления?


так вопрос в том и состоит


> делать все это для всех таблиц в одном месте без ссылки
> на какойнибудь там (Before/After Insert,Post...)
> - согласитесь не очень удобно добавил таблицу, не забудь
> про ссылку(и)... :(



 
Соловьев ©   (2003-03-12 14:39) [14]

Ну так в чем проблема? По Мидасу доков хоть отбавляй...


 
Silver_   (2003-03-12 14:45) [15]


> Соловьев ©


Где. Ссылочку кинь, если не трудно :)


 
Соловьев ©   (2003-03-12 14:59) [16]

Вот одна там есть неплохая статейка:
http://delphi.diagnostic.ru:8101/documentation.html
А так www.ya.ru и вперед.


 
Соловьев ©   (2003-03-12 15:08) [17]

http://docs.gets.ru


 
Silver_   (2003-03-12 17:01) [18]

Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2003.03.31;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.014 c
1-100266
jen_bond
2003-03-19 09:50
2003.03.31
Работа с файлом формата .emf


1-100237
dm37
2003-03-18 12:08
2003.03.31
Работа с файлами


3-100152
MsGuns
2003-03-12 13:16
2003.03.31
Триггер заклинило


1-100201
Softik
2003-03-14 17:35
2003.03.31
Вопрос о combobox-е! Есть в нем много записей. и вводя первые сим


14-100385
Andrey
2003-03-11 11:12
2003.03.31
Можно ли считать программу своей