Здравствуйте, MasikA, Вы писали:
MA>Просьба объяснить:
MA>Я из TEdit-a задаю число согласно которому изменяется текущая запись в наборе данных (использую ADO).
1. А как ты изменяешь текущую запись?
2. Какая версия Delphi? (Это чтобы можно было по исходникам TDBNavigator смотреть)
MA>Запись фактически меняется, но TNavigator эти изменения не обнаруживает.
Смысл в том, что он должен сам все отслеживать.
... << RSDN@Home 1.1 beta 2 >>
Здравствуйте, MasikA, Вы писали:
MA>Делаю я так:
MA>ADOTable.RecNo := StrToInt(Edit1.Text);
Странно. Не смог воспроизвести на своем D7:
1. Я создал новый пустой проект.
2. Добавил на форму TADOConnection и подключил к базе Northwind на своем локальном MS SQL 2000
3. Добавил на форму TADOTable и подключил к табличке Customers
4. Добавил на форму TDataSource и подключил к ADOTable1
5. Добавил на форму TDBGrid и подключил к DataSource1 — для визуального контроля
6. Добавил на форму TDBNavigator и подключил к тому же DataSource1
7. Добавил едит и кнопку.
8. В обработчике кнопки сделал AdoTable1.RecNo = IntToStr(Edit1.Text);
В итоге все ведут себя совершенно нормально — грид отображает перемещения при помощи как навигатора, так и едита; навигатор перемещает запись правильным образом; отображает статус он тоже правильно (если позиционироваться при помощи едита в запись №1, то кнопка "взад" дизаблится).
В общем, какая-то загадочность с этим навигатором. Надо проверить, правильно ли он подключен через TDataSource — большинство проблем у людей возникают, когда делается что-то из списка:
— имеем больше одного активного объекта VCL, подключенного к одной и той же табличке
— имеем больше одного TDataSource, подключенного к TDataSet (по идее, VCL такое не дает сделать — но руки разработчиков могучи, особливо при порождении своих клонов TDataSet)
и т.д.
... << RSDN@Home 1.1 beta 2 >>