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

Вниз

CommitRetaining отправляет в базу не все обновления   Найти похожие ветки 

 
Def   (2003-09-02 11:46) [0]

Всем привет!
Вот такая ситуация: отрабатывают 2 процедуры, в первой добавляется новая запись и заполняются 2 поля, вторая процедура заполняет еще одно поле в новой записи. Процедуры вызываются одна за другой. После этих действий на закрытие формы навешен commit.
После закрытия формы , смотрю что находится в базе и обнаруживаю, что там только результат работы первой процедуры. Может кто сталкивался с такой ситуацией, подскажите пожалуйста где мой прокол.

Процедура 1
Procedure TZakazForm.Set_NewTovar( Value : Integer );
Begin
TDataModule1(Owner).ZakazDS.DataSet.Append;
TDataModule1(Owner).ZakazDS.DataSet.FieldByName("ID_SPRZ").AsInteger :=
TDataModule1(Owner).SprZakazDS.DataSet.FieldValues["ID"];
TDataModule1(Owner).ZakazDS.DataSet.FieldByName("nom_tovar").AsInteger := Value;
TDataModule1(Owner).ZakazDS.DataSet.Post;
End;

Процедура 2
Procedure TZakazForm.Set_NewTovKol( Value : Integer );
Begin
TDataModule1(Owner).ZakazDS.DataSet.Edit;
TDataModule1(Owner).ZakazDS.DataSet.FieldByName("kolvo").AsInteger := Value;
TDataModule1(Owner).ZakazDS.DataSet.Post;
End;

Процедура 3 (Закрытие формы)
procedure TZakazForm.OkButtonClick(Sender: TObject);
begin
SummaZak := SummaZak1;
TDataModule1(Owner).ZakazDS.DataSet.Refresh;
TDataModule1(Owner).IBDatabase1.ApplyUpdates([TDataModule1(Owner).Zaka zDS.DataSet,TDataModule1(Owner).SPRZakazDS.DataSet]);
TDataModule1(Owner).IBTransaction1.CommitRetaining;
Self.Close;
end;


 
Zacho   (2003-09-02 12:28) [1]

1. А во время работы процедуры 2 текущая запись точно та, которую вставила процедура 1 ?
2. А без CachedUpdates можно обойтись ? В IBX постоянно вылазят разные баги в CachedUpdates.


 
Def   (2003-09-02 12:50) [2]

1. Запись точно та, проверял. Да и потом, все эти изменения видны в гриде. Ситуация такая, что перед тем как закрыть форму, я вижу все изменения в гриде, все правильно.

Ну можно сказать, что нашел в чем причина, только от этого не легче.
Просто напросто убрал POST в первой процедуре и EDIT во второй.
Скорее всего при открытии формы надо делать EDIT, а перед закрытием POST


 
Zacho   (2003-09-02 12:55) [3]


> Def (02.09.03 12:50) [2]

Явно баг в CachedUpdates в IBX. Лучше с CachedUpdates вообще не связываться.


 
Def   (2003-09-02 12:56) [4]

Хотя фигня получается. При помощи процедур заполняю таблицу - эта информация попадает в базу, а потом хочу пройтись в гриде по результатам этого заполнения, вношу изменения и эти из менения не попадают в базу, попадает только то, что было занесено процедурами.


 
Zacho   (2003-09-02 13:00) [5]


> Def (02.09.03 12:56) [4]

А UpdateSQL какой ? А ApplyUpdates и Commit делается ?


 
Def   (2003-09-02 13:39) [6]

Все, разобрался!
Большое спасибо! Я в UpdateSQL глупости всякие написал, поэтому криво работало.
Нормально все заработало.



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

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

Наверх





Память: 0.46 MB
Время: 0.011 c
6-71802
Jonni_M
2003-07-24 18:04
2003.09.22
IdPOP3 или NMPOP3 что лучше использовать


3-71533
Chery
2003-09-02 13:56
2003.09.22
Выдаёт ошибку в SQL при использов. ф-ции Max() с др. полями.


1-71648
A-DiL
2003-09-08 22:41
2003.09.22
Количество символов после запятой в Float(Real) переменной


3-71564
Relaxxx
2003-08-27 16:52
2003.09.22
Как мне округлить значение до сотых???


1-71639
Kremen
2003-09-11 15:33
2003.09.22
Преобразование Char в Integer





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