|
Изменение условия where в SelectCmd СА в процессе
|
|||
---|---|---|---|
#18+
Уважаемые знатоки! На форме в методе LOAD создаю СА: this.ca1 = CREATEOBJECT("CursorAdapter") WITH this.ca1 .DataSourceType = "ODBC" .DataSource = pr_Soed .alias = 'zarp' .tables = 'zarp' .KeyFieldList = 'rabotnik,n_rab' .whereType = 3 .FetchSize = -1 .FetchAsNeeded = .F. uslovie= 'WHERE n_rab =1 or n_rab=7' .SelectCmd = 'Select * from zarp' + uslovie .UpdatableFieldList ... .UpdateNameList ENDWITH this.ca1.cursorfill() 1. Перед выполнением ca1.CursorRefresh Где и Как обновить на uslovie= 'WHERE rabotnik ="Сидоров"' ? те обновленное условие поиска. 2. Или Как именно здесь (при описании свойств ca1) достучаться до метода BeforeCursorRefresh и в нем прописать все варианты поиска к примеру через DO CASE ипользуя LPARAMETR cSelectCmd, чтобы затем при необходимости в программе перед ca1.CursorRefresh выполнить ca1.BeforeCursorRefresh() WITH _usl(uslovie) ? В методе BeforeCursorRefresh необходимо в каждом варианте DO CASE прописывать каждый вариант Select ... или в качестве параметра передать uslovie для .SelectCmd ??? не используя DO CASE ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2016, 19:35 |
|
Изменение условия where в SelectCmd СА в процессе
|
|||
---|---|---|---|
#18+
VIVA_CA, CA не рассчитан на изменение запроса для обновления, СА понимает только изменение значений параметров запроса. И никакие before... тут не помогут. Твое "обновить на uslovie= 'WHERE rabotnik ="Сидоров"' - это изменение запроса. Оно допускается для CursorFill(), но при этом разрушается источник данных для грида. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2016, 00:00 |
|
Изменение условия where в SelectCmd СА в процессе
|
|||
---|---|---|---|
#18+
благодарю за такой лаконичный приговор! И все же, может кто нибудь подскажет - как в моем случае обратиться к методу(BeforeCursorFill) и изменить параметр cSelectCmd? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2016, 19:17 |
|
Изменение условия where в SelectCmd СА в процессе
|
|||
---|---|---|---|
#18+
VIVA_CAблагодарю за такой лаконичный приговор!А от длины приговора хоть как-то меняется его суть? И все же, может кто нибудь подскажет - как в моем случае обратиться к методу(BeforeCursorFill) и изменить параметр cSelectCmd?Молча. Берешь и обращаешься. И изменяешь хоть до посинения. Только толку от этого будет 0. Нравится бегать по граблям? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2016, 21:09 |
|
Изменение условия where в SelectCmd СА в процессе
|
|||
---|---|---|---|
#18+
Уважаемый правильный проходящий, Вы правы - опробовал на СА на базе заранее созданного класса СА - там с BeforeCursorFill все понятно ! Может снизойдете и пару строк набросаете - уже для просвещения, как в конкретном случае обратиться и прописать в метод ca1.BeforeCursorFill(или любой метод са1) нужный мне код?! С уважением и благодарностью за оказанное мне внимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2016, 19:51 |
|
Изменение условия where в SelectCmd СА в процессе
|
|||
---|---|---|---|
#18+
Можно в запросе указывать переменные, например есть свойство: ThisForm.cFilter присваиваешь ThisForm.cFilter = "Иванов" в запросе пишешь Код: sql 1.
Это именно значения, т.е. так не сработает ThisForm.cFilter = [where rab = 'Иванов'] Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2016, 07:56 |
|
|
start [/forum/topic.php?fid=41&msg=39142192&tid=1582191]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 144ms |
0 / 0 |