Delphi
От: MasikA Молдова  
Дата: 19.10.03 14:14
Оценка:
Просьба объяснить:
Я из TEdit-a задаю число согласно которому изменяется текущая запись в наборе данных (использую ADO). Запись фактически меняется, но TNavigator эти изменения не обнаруживает. Как мне сообщить TNavigator-у, что активной стала другая запись в наборе данных и что ему необходимо обновить свою внутреннюю информацию. Проблема в том, что при изменении текущей записи с помощью компонента TEdit, если нажать на кнопку Prior из TNavigator-а он начнет перемещение со старой записи, игнорируя действя TEdit-а.
Re: Delphi
От: Sinclair Россия https://github.com/evilguest/
Дата: 19.10.03 14:33
Оценка:
Здравствуйте, MasikA, Вы писали:

MA>Просьба объяснить:

MA>Я из TEdit-a задаю число согласно которому изменяется текущая запись в наборе данных (использую ADO).
1. А как ты изменяешь текущую запись?
2. Какая версия Delphi? (Это чтобы можно было по исходникам TDBNavigator смотреть)
MA>Запись фактически меняется, но TNavigator эти изменения не обнаруживает.
Смысл в том, что он должен сам все отслеживать.
... << RSDN@Home 1.1 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Delphi
От: MasikA Молдова  
Дата: 19.10.03 14:41
Оценка:
Делаю я так:
ADOTable.RecNo := StrToInt(Edit1.Text);
Re[2]: Delphi
От: MasikA Молдова  
Дата: 19.10.03 14:58
Оценка:
Использую Delphi 7
Re[2]: Delphi
От: Sinclair Россия https://github.com/evilguest/
Дата: 19.10.03 16:47
Оценка: :)
Здравствуйте, 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 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.