Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.24;
Скачать: CL | DM;

Вниз

ADO, JRO, Access, DBGrid и вообще.   Найти похожие ветки 

 
0_archi_0   (2006-10-12 18:11) [0]

Всем доброго вечера, есть вопросик.
Есть база данных на Aecess - AIDS.mdb (главная таблица, две связанные).
Схематично: ADOConnection1 -> PacientiADOTable ->  PacientiDataSource -> PacientiDBGrid на главной форме.
Из меню главной формы вызывается следующая процедура:
procedure TMainForm.N9Click(Sender: TObject);
var ReplObject: Replica;
   Provider, Src, Dst: String;
begin
ReplObject:= CoReplica.Create;
Provider:= "Provider=Microsoft.Jet.OLEDB.4.0;";
Src:= Provider+"Data Source = "+"AIDS.mdb";
Dst:= "AIDS1.mdb";
ReplObject.Set_ActiveConnection(Src);
try
 ReplObject.Synchronize(Dst, jrSyncTypeImport, jrSyncModeDirect);
except
 on E: Exception do
     ShowMessage(e.message);
end;
//Данный кусок кода переносит изменения из базы AIDS1.mdb в базу AIDS.mdb - главную реплику. К нему вопросов нет
if DataModule1.PacientiADOTable.Modified then
DataModule1.PacientiADOTable.Post;
DataModule1.PacientiADOTable.Requery;
Application.Terminate;
//а вот здесь вопросы - после выполнения кода приложение не заканчивается, как висела форма так и висит?????????? и данные DBGride не обновляются.
end;
Может кто что подскажет?
Заранее благодарю.


 
ANB ©   (2006-10-12 18:21) [1]

А зачем обновлять грид, если собираешься закрыть приложение ?


> if DataModule1.PacientiADOTable.Modified then
> DataModule1.PacientiADOTable.Post;

Вот этот кусок вообще бессмысленен.


 
0_archi_0   (2006-10-12 18:45) [2]

Первоначально ход мыслей был таков - жмется кнопка меню, происходит репликация, обновленные данные появляются там же где до этого были старые в DBGrid"e, которы на форме постоянно находится. Однако данные в DBDrid"e не обновляются, чтобы это произошло надо нажать еще раз меню.
А это не есть хорошо, поэтому решил просто закрыть форму, а когда открываешь снова программу данные обновлены и их видно - как альтернативный (другого выхода не знаю) выход.
А отчего форма не реагирует на Application.Terminate???????????


 
ANB ©   (2006-10-12 18:53) [3]


> А отчего форма не реагирует на Application.Terminate????
> ???????

Ээээ. Вообще то форма Close закрывается. Наверное, потому и не кусает . . . А в каком обработчике это все происходит ?


 
0_archi_0   (2006-10-12 19:36) [4]

Форма не реагирует не только на Application.Terminate, но и на весь комплекс:

Self.Close;
MainForm.Close;
Application.Terminate;

Но с этим я разобрался, просто добавил строку - ReplObject:=nil;
Хотя может красивее что-то есть.

А вот DBGrid обновляеся только после второго нажатия менюшки, как бы за одни раз бы?



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

Текущий архив: 2006.12.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
4-1155901190
Прогер
2006-08-18 15:39
2006.12.24
Как грамотно остановить сервис? Service WinNT


15-1165174447
SkySpeed
2006-12-03 22:34
2006.12.24
Что за прикол в С++???


6-1154054443
Гриха
2006-07-28 06:40
2006.12.24
Передать файл через сеть


3-1160662055
RDA
2006-10-12 18:07
2006.12.24
Firebird + FIBPlus методы работы с составным документом


15-1165181106
Loginov Dmitry
2006-12-04 00:25
2006.12.24
Win XP SP2 ограничивает размер отправляемых сообщений :(