powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / IBDataSet только для просмотра, DBNavigator кнопка refresh не доступна
12 сообщений из 12, страница 1 из 1
IBDataSet только для просмотра, DBNavigator кнопка refresh не доступна
    #39781530
Sergey-2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток,
Есть две два рабочих отдела - они делают работу. Есть контролер за этими отделами (он может только смотреть).
Для контролера, также использую компонент IBDataSet для доступа к БД Firebird, только для просмотра (инф. из этих двух отделов) сложного запроса (из нескольких таблиц), т.е. в нем заполнены только свойства «RefreshSQL» и «SelectSQL».
Таким образом, в компоненте «DBNavigator» доступны только кнопки навигации, а кнопка «обновления» - осталась не доступна .

Как мне сделать ее доступной?
Спасибо за ответ.
...
Рейтинг: 0 / 0
IBDataSet только для просмотра, DBNavigator кнопка refresh не доступна
    #39781571
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008,

гм, для "обновления" данных нужно перевыполнить SelectSQL, а для обновления текущей строки - RefreshSQL.
Никаких других способов обновления данных из SQL серверов нет.
...
Рейтинг: 0 / 0
IBDataSet только для просмотра, DBNavigator кнопка refresh не доступна
    #39781582
Sergey-2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,
да, я знаю.
Просто мне хотелось бы, чтоб в DBNavigator ("привязанного к DataSet ), кнопка " refresh " была доступна для нажатия, а без запросов на модификацию в DataSet этого не добиться. Я так понимаю.
...
Рейтинг: 0 / 0
IBDataSet только для просмотра, DBNavigator кнопка refresh не доступна
    #39781584
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008Я так понимаю.

Что-то мешает тебе посмотреть ему в исходники и точно знать условие доступности этой кнопки?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
IBDataSet только для просмотра, DBNavigator кнопка refresh не доступна
    #39781613
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008использую компонент IBDataSet для доступа к БД Firebird, только для просмотра (инф. из этих двух отделов) сложного запроса (из нескольких таблиц), т.е. в нем заполнены только свойства «RefreshSQL» и «SelectSQL».
Таким образом, в компоненте «DBNavigator» доступны только кнопки навигации, а кнопка «обновления» - осталась не доступна .

Не используй TDBNavigator, это - глючный компонент.
...
Рейтинг: 0 / 0
IBDataSet только для просмотра, DBNavigator кнопка refresh не доступна
    #39781617
Sergey-2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

В исходниках есть такое свойство у "DataSet" называется "CanRefresh", вот оно суйчас "false", а нужно "true". И это свойство только для чтения. потом пошло "TDataSet.CanModify" но мне не надо модификации...

есть еще одна штука, в aftescroll
поставить DBNavvigator.Controls[Ord(nbRefresh)].Enabled := true; - но это не выход
...
Рейтинг: 0 / 0
IBDataSet только для просмотра, DBNavigator кнопка refresh не доступна
    #39781625
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008В исходниках есть такое свойство у "DataSet" называется "CanRefresh", вот оно суйчас
"false", а нужно "true". И это свойство только для чтения.

Почитать глубже и понять почему оно false - "mission impossible"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
IBDataSet только для просмотра, DBNavigator кнопка refresh не доступна
    #39781627
Sergey-2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

не углубляться продолжим, - интересно...
(а может быть костыль - заполнить свойство - DataSet.UpdateObject? - ну это так между прочим, костылей нам е надо)
...
Рейтинг: 0 / 0
IBDataSet только для просмотра, DBNavigator кнопка refresh не доступна
    #39781632
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008а может быть костыль
Еще раз: TDBNavigator - исторически глючный компонент. Можешь исправить код метода TDBNavigator.DataChanged() и привести поведение к желаемому, ничего особенного в такой правке нет.
Можешь вместо TDBNavigator использовать другие навигаторы, например, TcxDBNavigator.
Можешь сделать класс-заготовку окна или фрейма, размещающего грид, датасет, датасорц, экшнлист и кнопки. А потом просто наследоваться от такого класса. Можешь использовать гриды с встроенным навигатором (TcxGrid).

T cx DBNavigator:
...
Рейтинг: 0 / 0
IBDataSet только для просмотра, DBNavigator кнопка refresh не доступна
    #39781714
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey-2008В исходниках есть такое свойство у "DataSet" называется "CanRefresh", вот оно суйчас "false", а нужно "true". И это свойство только для чтения. потом пошло "TDataSet.CanModify" но мне не надо модификации...

есть еще одна штука, в aftescroll
поставить DBNavvigator.Controls[Ord(nbRefresh)].Enabled := true; - но это не выход
Выход, на мой взгляд, вот какой, - поменять прямо в исходниках соотв строку в TDBNavigator.EditingChanged на
Buttons[nbRefresh].Enabled := Enabled and FDataLink.Active и больше по этому поводу никогда не париться.
Кроме того предлагаю перенести этот топик в ветку Delphi, как более соответствующую затрагиваемой тематике.

Модератор: Тема перенесена из форума "Firebird, InterBase".
...
Рейтинг: 0 / 0
IBDataSet только для просмотра, DBNavigator кнопка refresh не доступна
    #39781998
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что не понятно из этого кода?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
procedure TDBNavigator.EditingChanged;
var
  CanModify: Boolean;
begin
  CanModify := Enabled and FDataLink.Active and FDataLink.DataSet.CanModify;
  Buttons[nbInsert].Enabled := CanModify;
  Buttons[nbEdit].Enabled := CanModify and not FDataLink.Editing;
  Buttons[nbPost].Enabled := CanModify and FDataLink.Editing;
  Buttons[nbCancel].Enabled := CanModify and FDataLink.Editing;
  Buttons[nbRefresh].Enabled := CanModify;
  Buttons[nbApplyUpdates].Enabled := CanModify and Self.CanApplyUpdates;
  Buttons[nbCancelUpdates].Enabled := CanModify and Self.CanCancelUpdates;
end;
...
Рейтинг: 0 / 0
IBDataSet только для просмотра, DBNavigator кнопка refresh не доступна
    #39782009
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Дык, мало того, ему уже подсказали на что заменить вторую.))
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / IBDataSet только для просмотра, DBNavigator кнопка refresh не доступна
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]