|
Непонятки с курсором и set filter.
|
|||
---|---|---|---|
#18+
Имеется форма отображающая данные о материалах: таблица(грид) + кнопки (добавления, редактирования, удаления) + поле поиска и кнопка поиска. Данные для грида берутся из курсора. В кнопке поиска код типа Код: plsql 1.
Пока не включается поиск все работает, а как только сделаешь поиск и попытаешся отредактировать одну из отфильтрованных записей выдает ошибку - Код: plsql 1.
Выполнение останавливается на командах формы редактирования (метод init)- Код: plsql 1. 2.
В чем может быть проблема ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2014, 12:07 |
|
Непонятки с курсором и set filter.
|
|||
---|---|---|---|
#18+
faustgreen, Судя по ошибке - несовпадение типов данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2014, 12:13 |
|
Непонятки с курсором и set filter.
|
|||
---|---|---|---|
#18+
В кнопке редактирования такой код : Код: plsql 1. 2. 3.
В методе Init формы frmEdit код: Код: plsql 1. 2. 3.
В итоге в a1 есть записи, а в а2 - нет. ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2014, 12:30 |
|
Непонятки с курсором и set filter.
|
|||
---|---|---|---|
#18+
Load формы выполняется раньше, чем Init, там может быть записан другой курсор с тем же именем. А если у формы private datasession, то и условие отбора (если оно вида "(поле поиска).(значение)") в момент открытия формы может измениться. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2014, 13:10 |
|
Непонятки с курсором и set filter.
|
|||
---|---|---|---|
#18+
faustgreenИмеется форма отображающая данные о материалах: таблица(грид) + кнопки (добавления, редактирования, удаления) + поле поиска и кнопка поиска. Данные для грида берутся из курсора. В кнопке поиска код типа Код: plsql 1.
Пока не включается поиск все работает, а как только сделаешь поиск и попытаешся отредактировать одну из отфильтрованных записей выдает ошибку - Код: plsql 1.
Выполнение останавливается на командах формы редактирования (метод init)- Код: plsql 1. 2.
В чем может быть проблема ?Как обычно, в неправильном понимании. SET Filter - НЕ ПОИСК. Это НАСТРОЙКА. Что легко определяется по ключевому слову этой команды. И это настройка конкретной таблицы. Глобальная. И непрерывная. То есть она остается включенной и записанное в ней условие проверяется в том числе и при переключении форм, где может не быть (поле поиска).(значение) или это поле там может быть другого типа. В результате получаем вроде как "непонятное" сообщение об ошибке несовпадения типов. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2014, 13:21 |
|
Непонятки с курсором и set filter.
|
|||
---|---|---|---|
#18+
Спасибо, немного попонятнее стало. Дальше буду сам копать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2014, 14:02 |
|
Непонятки с курсором и set filter.
|
|||
---|---|---|---|
#18+
Все заработало! Проблема была в том, как было задано условие для фильтра: Код: plsql 1.
Заменил thisform на наименование формы Код: plsql 1.
, и все пошло. Получается при повторном обращении к курсору программа его "пересматривала" (с учетом фильтра), но так форма была уже другая, то нужное поле textX не находила. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2014, 14:21 |
|
Непонятки с курсором и set filter.
|
|||
---|---|---|---|
#18+
Лучше используй макроподстановку. т.е. вместо Код: sql 1.
пиши Код: sql 1. 2. 3.
AT() можно на $ заменить Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2014, 14:35 |
|
|
start [/forum/topic.php?fid=41&fpage=31&tid=1582638]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 134ms |
0 / 0 |