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

Вниз

И снова про транзакции и обновление   Найти похожие ветки 

 
For   (2004-11-28 03:28) [0]

Подскажите тупому новичку, как правильно реализовать обновление таблиц с помощью транзакций. Пример: одна прога изменяет данные, другая их должна видеть, или получить сообщение, что таблица изменена. Везде где обсуждался этот вопрос нет ничего конкретного, или я не догоняю. Применимо как для IBDataset, так и для IBTable. ХЭЛП!


 
Vemer ©   (2004-11-28 11:09) [1]

Тут и рядом с ним можно найти много интересного:
http://www.sql.ru/forum/actualthread.aspx?tid=140992


 
MaxxSoft ©   (2004-11-28 11:28) [2]

Создаешь процедуру в БД для изменения данных, и на выходе генерируешь событие, напрмер:

CREATE PROCEDURE "CHANGE_TABLE1"
(
 "VALUE1" INTEGER,
 "VALUE2" INTEGER
)
AS
begin
 update TABLE1 set FIELD1 = :VALUE1 where FIELD2 = :VALUE2;
 post_event("TABLE1_CHANGED");
end

В приложении, изменяющем данные в БД создаешь SQL-запрос и через него вызываешь эту процедуру:

CHANGE_TABLE1_SQL: TIBSQL;
...
with CHANGE_TABLE1_SQL do
begin
 CHANGE_TABLE1_SQL.SQL.TEXT := "execute procedure CHANGE_TABLE1" (:VALUE1, :VALUE2);
 if not Prepared then Prepare;
 ParamByName("VALUE1").AsInteger := Value1;
 ParamByName("VALUE2").AsInteger := Value2;
 ExecQuery;
 Close;
end;


В приложении, которое отображает изменения создаешь Event:

CHANGE_TABLE1_EVENT: TIBEvents;
...
//при создании формы устанавливаешь и регистрируешь событие:
CHANGE_TABLE1_EVENT.Events.Clear;
CHANGE_TABLE1_EVENT.Events.Add("TABLE1_CHANGED");
CHANGE_TABLE1_EVENT.Registered := true;
...
//Пишешь обработчик события
procedure TDataModul.CHANGE_TABLE1_EVENTEventAlert(...);
begin
//To do...
end;

Вот и все, успехов...



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

Форум: "Базы";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.038 c
14-1102369948
matt
2004-12-07 00:52
2004.12.26
Сигареты


1-1102785933
vvvaaa
2004-12-11 20:25
2004.12.26
Промотка панели


10-1072286014
Mozg
2003-12-24 20:13
2004.12.26
Переход с Delphi5 + Visibroker 3 на Delphi 7 + Visibroker4


14-1102320197
clickmaker
2004-12-06 11:03
2004.12.26
Логическая задачка для разминки мозгов в начале рабочей недели :)


14-1102597974
inic
2004-12-09 16:12
2004.12.26
Про .NET и Common Language Specification





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский