Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.03.31;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.006 c
3-100196
reticon
2003-03-11 22:42
2003.03.31
поиск записи по ее номеру


1-100279
Uran
2003-03-19 11:33
2003.03.31
Тип линии в TChart


1-100248
canec
2003-03-18 15:17
2003.03.31
wMilliseconds


1-100285
OlegM
2003-03-18 13:52
2003.03.31
case и string


14-100406
Jeka
2003-03-11 14:52
2003.03.31
видел майку с надписью





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский