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

Вниз

Как в IBDataSet сделать Commit?   Найти похожие ветки 

 
Ламер   (2003-02-05 09:36) [0]

Здраствуйте, мастера! Нужна Ваша консультация.
Использую связку IBDatabase->IBTransaction->IBDataSet-DataSet->DBGrid все работатет - я редактирую данные в гриде. Но вот сохраняет данные в базу(на диск) только после закрытия программы.
Как сделать Commit? Что-то не догоню...


 
Delirium^.Tremens   (2003-02-05 09:38) [1]

В общих чертах:

IBTransaction.StartTransaction;
{... Делаем свои гнусные дела...}
IBTransaction.Commit;


 
Ламер   (2003-02-05 09:49) [2]


> Delirium^.Tremens © (05.02.03 09:38)
> В общих чертах:
>
> IBTransaction.StartTransaction;
> {... Делаем свои гнусные дела...}

Я написал , что редактирование в гриде. Я делал IBTransaction.StartTransaction в событии BeforeInsert(IBDataSet), но мне говорится, что транзакция активна.



 
Max Zyuzin   (2003-02-05 09:55) [3]

Это было в 2-х словах. Вообще транзакция стартуется по умолчанию как только ты открываешь датасет. По этому тебе надо делать просто Commit
Да и не рекомендуется стартовать транзакцию и подтверждать ее после каждой вставки... хотя все конечно зависит от задачи.


 
Delirium^.Tremens   (2003-02-05 09:55) [4]

Значит перед стартом проверить ее на активность и, если активна, не стартовать. После Post или ApplyUpdates делать Commit.


 
Ламер   (2003-02-05 10:01) [5]

2 Max Zyuzin ©
>>и подтверждать ее после каждой вставки
Только не понятно, на случай выключения света и глюков, что с данными будет? Мне не понятно когда данные могут не нести ценности? Таких не должно просто быть...


 
Ламер   (2003-02-05 10:04) [6]


>
> Delirium^.Tremens © (05.02.03 09:55)
> Значит перед стартом проверить ее на активность и, если
> активна, не стартовать. После Post

Делаю Commit.
Ошибка - Cannot perform this operation on close dataset...
Эта поперация не может быть выполнена для закрытого DataSet. Что же ё маё делать....


 
Max Zyuzin   (2003-02-05 10:11) [7]

>Ламер (05.02.03 10:01)
Транзакции задуманы были, что бы сохранять целостность данных, если ты к примеру забиваешь запись в главную таблицу и сразу же связанные с этой записи в N починенных, тебе надо что бы все это безобразие добавилось сразу... вот тут и нужны транзакции...
А вообще Commit -ы загружают сервер, их нужно делать с умом :)


 
Ламер   (2003-02-05 10:16) [8]

С транзакциями я в курсе. Знаю про эффект потери 100 фунтов :)
Но ято скажет юзер, когда он набет данные, сохранил(кеш), на сервак пока нет(Commit), и тут мин через 10 бац - свет выключили... Потом включают, а данные тютю - нету. А скажет, а я же делал... Виноват программист.
Но что же мне делать с смоей траблой????


 
Max Zyuzin   (2003-02-05 10:22) [9]

>Ламер (05.02.03 10:16)
Ну тогда делай после каждой вставки CommitRetaining
Или можно по другому сделать... на формочку бросить кнопочки... "сохранить изменения", "не сохранять изменения", ну и там уж рулить Commit или RollBack


 
Ламер   (2003-02-05 10:24) [10]

А как с гридом, что нельзя без кнопочек? Как мне сделать Commit? Мастера, не ужто никто с этим не сталкивался???


 
Ламер(Ау, Мастера)   (2003-02-05 10:53) [11]

Ну кто-нибудь может помочь?


 
Max Zyuzin   (2003-02-05 10:55) [12]

На событие у датасета AfterInser (вроде так называется) вешай CommitRetaining


 
Ламер   (2003-02-05 10:59) [13]

2 Max Zyuzin ©
Спасибо, все работает...Вот что значит не зазнавшийся мастер.


 
Max Zyuzin   (2003-02-05 11:10) [14]

>Ламер (05.02.03 10:59)
Только тут нужно еще тоже самое вешать на редактирование... а то если у тебя пользователи че нить поправят... а потом свет :) будет не хорошо :)))
ИМХО все же лучше с кнопочками, и тебе проще и юзверям нагляднее, вот я нажал на сохранить и усе сохранилось, не нажал и амба :) (почти как в Word-е - там же доки не сохраняются после набора каждого сивола)


 
Johnmen   (2003-02-05 11:11) [15]

>Max Zyuzin © (05.02.03 10:55)
>На событие у датасета AfterInser (вроде так называется) вешай
>CommitRetaining

Смею заметить, что лучше бы AfterPost...


 
Max Zyuzin   (2003-02-05 11:15) [16]

>Johnmen © (05.02.03 11:11)
:о) ИМХО все равно лучше с кнопочками... :)


 
Johnmen   (2003-02-05 11:23) [17]

>Max Zyuzin © (05.02.03 11:15)
>ИМХО все равно лучше с кнопочками...

Спору нет....:) Хотя все зависит от конкретной ситуации...




 
Тип   (2003-02-05 11:32) [18]


>
> Max Zyuzin © (05.02.03 11:10)
> >Ламер (05.02.03 10:59)
> Только тут нужно еще тоже самое вешать на редактирование...
> а то если у тебя пользователи че нить поправят... а потом
> свет :) будет не хорошо :)))
Уже повесил на удаление, и редактирование
> ИМХО все же лучше с кнопочками, и тебе проще и юзверям нагляднее,
да, но мне попроще надо, с кнопками я подумаю...
> вот я нажал на сохранить и усе сохранилось, не нажал и амба
> :) (почти как в Word-е - там же доки не сохраняются после
> набора каждого сивола)
Word - это Microsoft, для юзверят это как Бог, а я еще Ламер так что мои проги должні біть понадежнее...




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

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

Наверх





Память: 0.48 MB
Время: 0.01 c
4-63898
Dementy
2002-12-30 01:07
2003.02.20
Как вывести окно перед др окнами


6-63695
BJValentine
2002-12-26 19:47
2003.02.20
Удаленный клиент


6-63720
really_Deflorator
2002-12-28 23:13
2003.02.20
Поиск сервера в сети


7-63876
SPIRIT
2002-12-18 19:59
2003.02.20
Уменьшить DESKTOP


14-63774
Nick-From
2003-02-01 14:22
2003.02.20
хочу сканер





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