Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

interbase [D5, IB5.x]


Страницы:   1 2

SergBBS ©   (2003-02-26 13:06:00) 

Здравствуйте!

Уважаемые мастера! Подскажите как обновить пользователям набор данных при изменении или добавлении одним из них записи. Используется interbase 5.5


MsGuns   (2003-02-28 11:17:00) [1]

Очень рекомендую IBExpert - хорошая вещь.
www.ibexprt.com

Там все доходчиво и красиво (в стиле IDE Delphi).


SergBBS   (2003-02-28 11:17:00) [2]

Большое спасибо за ваши ответы, но не надо из-за меня начинать перепалку.


Johnmen   (2003-02-28 10:47:00) [3]

>Vladimir © (28.02.03 10:42)
>> Sergey13 © Не смущай человека, начинать-то надо с чего-то.

Ну да, давай начнем изучение с вопросов в форумы...:)



Vladimir   (2003-02-28 10:42:00) [4]

> Sergey13 © Не смущай человека, начинать-то надо с чего-то.
SergBBS
Совет насчет заглянуть в SQL-Ref не стоит отвергать, однако...
Когда речь идет об изменении метаданных (структуры БД), то это либо скрипт, либо iSQL (что, в принципе, одно). Про сторонние компоненты речи нет.
Здесь тебе необходимо произвести изменение структуры БД - поставить триггер на изменения в таблице. Что такое триггер, более точно прочитай в справке. Create triggerвыполняется в iSQL.


Sergey13   (2003-02-28 09:44:00) [5]

2SergBBS (28.02.03 09:14)
Ты меня извини конечно, тезка, но (судя по твоим вопросам) брось ты на фиг заниматься тем вопросом,с которого начал ветку. Отложи годика на два. Тем паче что конечный результат ну о-о-о-очечень сомнителен. Поверь.
Без знаний арифметики алгебры не поймешь.


Johnmen   (2003-02-28 09:29:00) [6]

>SergBBS (28.02.03 09:14)

Примеры применения и указанного кода и других кодов есть в SQL Reference Help, и заглянуть туда проще и быстрее, чем сюда...


SergBBS   (2003-02-28 09:14:00) [7]

Vladimir!
Прости меня за глупый вопрос, но как применить данный код: через интерактивный sql на сервере или через компонент Query.


Vladimir   (2003-02-27 17:28:00) [8]

Таблица
TABLE1(
rec integer not null primary key,
name varchar(10))

Генератор GEN_TABLE1_REC
Триггер на вставку записи в базу: присваивает автоинкрементом поле REC, NAME пишет имя пользователя, делающего вставку, вызывает событие "new_in_table1":
CREATE TRIGGER TABLE1_BI FOR TABLE1
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
NEW.REC = GEN_ID(GEN_TABLE1_REC,1);
NEW.NAME=user;
post_event("new_in_table1");
END

Пробуй.


SergBBS   (2003-02-27 16:33:00) [9]

Vladimir! Я наверное чего-то не понимаю, объясни как в базе поставить триггер. Пожалуйста!


Vladimir   (2003-02-27 16:19:00) [10]


> там еще стоит компонент TStoredProc

Там это где??? В базе ставишь на триггере
post_event("ME_EVENT");
В событиях Alerter"а пишешь те же самые строки. При чем здесь StoredProc?!


Desdechado   (2003-02-27 15:53:00) [11]

через компоненты типа TQuery


SergBBS   (2003-02-27 14:53:00) [12]

Я вот по поводу IBEventAlerter. Нашел в примерах его использование, а там еще стоит компонент TStoredProc. Насколько я понимаю в базе должна быть какая-то процедура. А как ее туда засунуть я не понимаю (делается это с помощью сервера InterBase или с помощью какого-то компонента в Delphi или еще как). Я вот читал документацию по серверу Interbase и там все сплошь одни операторы, которые выполняются с помощью Sql Explorer-а, а как это применить в програмке на Delphi? Может кто-нибудь объяснит ?


Roki   (2003-02-27 13:23:00) [13]

2 Johnmen ©
Спасибо, опять меня выручил.
О сделал:
read_committed
rec_version
nowait

заработало.


Johnmen   (2003-02-27 13:08:00) [14]

Получает.
Видимо не выставлены параметры транзакции. Даблклик на IBTransaction...


Roki   (2003-02-27 13:01:00) [15]

Я вот делаю как Вы посоветовали close open у IBDataSet , а обновления я не вижу...Хотя в БД они лежат. CommitRetaining использую. Почему программа не получает данные с сервера при close open?


Vladimir   (2003-02-27 12:57:00) [16]

>Johnmen ©
Согласен, немного стоит приложить руки к нему. Апдейты там поставить... Да и после них надо напильником поработать. А так вобщем-то совсем даже ничего.


Johnmen   (2003-02-27 12:28:00) [17]

>Vladimir © (27.02.03 12:17)

Методологически - это вариант.
По жизни - весьма сомнительное мероприятие, громоздкое и глюкавое в силу оцтойности IBEventAlerter :)))


Vladimir   (2003-02-27 12:17:00) [18]

Собственно на вопрос никто не ответил - используй IBEventAlerter. На изменение данных (удал,добав,изм) ставишь post(event), регистрируешь события в программе и отрабатываешь собственно Close Open (Refresh), как подсказывали выше.


zacho   (2003-02-27 10:22:00) [19]

В 5.5 есть весьма серьезные баги, могущие привести к разрушению БД. Т.ч. использовать надо как минимум 5.6. Кстати, насколько помню, апдейт 5.5 до 5.6 был бесплатным. А насчет FB - смотри www.ibase.ru и далее по ссылкам


SergBBS   (2003-02-26 14:55:00) [20]

А чем плох InterBase 5.5? Или чем лучше FireBird?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо