|
|
|
order
|
|||
|---|---|---|---|
|
#18+
создал remote view (ODBC) в нем сортировка order by xxx как потом поменять сортировку? т.е. изменить сортировку курсора, перейти на сортировку по другому полю? база MSSQL. можно создать новый вью, но не хотелось бы, индексы тоже не нужны, не совсем корректно они работаю в сети. за раннее спасибо, фокс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 18:34 |
|
||
|
order
|
|||
|---|---|---|---|
|
#18+
1) Можно сделать параметризированный ORDER BY ORDER BY ?MyPar Правда это можно сделать только при программном создании Remote View командой CREATE SQL VIEW. Через дизайнер такого не сделать 2) Можно сделать в дизайнере вычисляемое поле примерно такого вида CASE WHEN ?MyPar=1 THEN Field1 ELSE Field2 END и установить ORDER BY по этому полю. По сути, тот же параметризированный ORDER BY, но несколько другим способом. Объяснять, что такое парметризированное View и как с ним работать надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2006, 18:57 |
|
||
|
order
|
|||
|---|---|---|---|
|
#18+
ВладимирМ1) Можно сделать параметризированный ORDER BY ORDER BY ?MyPar Правда это можно сделать только при программном создании Remote View командой CREATE SQL VIEW. Через дизайнер такого не сделать 2) Можно сделать в дизайнере вычисляемое поле примерно такого вида CASE WHEN ?MyPar=1 THEN Field1 ELSE Field2 END и установить ORDER BY по этому полю. По сути, тот же параметризированный ORDER BY, но несколько другим способом. Объяснять, что такое парметризированное View и как с ним работать надо? спасибо за информацию, что такое параметр знаю, работаю с ним, жаль в дизайнере нельзя использовать, а вот конструкцию CASE WHEN ?MyPar=1 THEN Field1 ELSE Field2 END в хелпе не нашел, но попробую. да, неудобство, в дельфи есть грид в котором сортировка происходит при клике на заголовке поля - удобно, один дельфист показывал, а нам вот извращаться приходится... спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2006, 10:09 |
|
||
|
order
|
|||
|---|---|---|---|
|
#18+
фокса вот конструкцию CASE WHEN ?MyPar=1 THEN Field1 ELSE Field2 END в хелпе не нашел Это надо смотреть "Books OnLine", сокращенно BOL. Т.е. HELP к MS SQL. Ты же строишь Remote View к MS SQL, значит любые выражения в этом Remote View должны быть в синтаксисе MS SQL, а вовсе не FoxPro. фоксда, неудобство, в дельфи есть грид в котором сортировка происходит при клике на заголовке поля - удобно, один дельфист показывал, а нам вот извращаться приходится... Как там реализовано в Delphi я не знаю. Но, наверняка за такую сортировку им тоже чем-то приходится платить. Т.е. неудобства будут в чем-то другом. А для FoxPro стандартным решением является именно создание индексов. Т.е. индексирование Remote View и установка по щелчку на заголовок Grid нужного главного индекса. Это не так сложно как кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2006, 14:47 |
|
||
|
order
|
|||
|---|---|---|---|
|
#18+
ВладимирМ фокса вот конструкцию CASE WHEN ?MyPar=1 THEN Field1 ELSE Field2 END в хелпе не нашел Это надо смотреть "Books OnLine", сокращенно BOL. Т.е. HELP к MS SQL. Ты же строишь Remote View к MS SQL, значит любые выражения в этом Remote View должны быть в синтаксисе MS SQL, а вовсе не FoxPro. фоксда, неудобство, в дельфи есть грид в котором сортировка происходит при клике на заголовке поля - удобно, один дельфист показывал, а нам вот извращаться приходится... Как там реализовано в Delphi я не знаю. Но, наверняка за такую сортировку им тоже чем-то приходится платить. Т.е. неудобства будут в чем-то другом. А для FoxPro стандартным решением является именно создание индексов. Т.е. индексирование Remote View и установка по щелчку на заголовок Grid нужного главного индекса. Это не так сложно как кажется. это не сложно, но я столкнулся с ситуацией, что если два пользователя локально проиндексировали поле, и потом один из них внес новую запись, то другой этой записи не увидит, т.к. его локальный индекс ее игнорирует, хотя и делается requer(). по поводу ремоут, я его строю в вфп, и выглядит он так: SELECT Rasp.vhod_num, Rasp.control, Rasp.otv_kontr, Rasp.n_kart_p,; Rasp.date_reg, Rasp.isp, Rasp.type_doc, Rasp.tema_doc, Rasp.contests,; Rasp.visa, Rasp.rassilka, Rasp.data_ot_p, Rasp.data_ot_r, Rasp.n_kart_r,; Rasp.rez, Rasp.dsk, Rasp.tip; FROM ; dbo.rasp Rasp; ORDER BY Rasp.vhod_num DBSetProp(ThisView,"View","SendUpdates",.T.) DBSetProp(ThisView,"View","BatchUpdateCount",1) DBSetProp(ThisView,"View","CompareMemo",.T.) DBSetProp(ThisView,"View","FetchAsNeeded",.F.) DBSetProp(ThisView,"View","FetchMemo",.T.) DBSetProp(ThisView,"View","FetchSize",-1) DBSetProp(ThisView,"View","MaxRecords",-1) DBSetProp(ThisView,"View","Prepared",.F.) DBSetProp(ThisView,"View","ShareConnection",.T.) DBSetProp(ThisView,"View","AllowSimultaneousFetch",.F.) DBSetProp(ThisView,"View","UpdateType",1) DBSetProp(ThisView,"View","UseMemoSize",255) DBSetProp(ThisView,"View","Tables","dbo.rasp") DBSetProp(ThisView,"View","WhereType",1) DBSetProp(ThisView+".vhod_num","Field","DataType","N(9)") DBSetProp(ThisView+".vhod_num","Field","UpdateName","dbo.rasp.vhod_num") DBSetProp(ThisView+".vhod_num","Field","KeyField",.T.) DBSetProp(ThisView+".vhod_num","Field","Updatable",.F.) DBSetProp(ThisView+".control","Field","DataType","L") DBSetProp(ThisView+".control","Field","UpdateName","dbo.rasp.control") DBSetProp(ThisView+".control","Field","KeyField",.F.) DBSetProp(ThisView+".control","Field","Updatable",.T.) DBSetProp(ThisView+".otv_kontr","Field","DataType","C(25)") DBSetProp(ThisView+".otv_kontr","Field","UpdateName","dbo.rasp.otv_kontr") DBSetProp(ThisView+".otv_kontr","Field","KeyField",.F.) DBSetProp(ThisView+".otv_kontr","Field","Updatable",.T.) DBSetProp(ThisView+".n_kart_p","Field","DataType","C(7)") DBSetProp(ThisView+".n_kart_p","Field","UpdateName","dbo.rasp.n_kart_p") DBSetProp(ThisView+".n_kart_p","Field","KeyField",.F.) DBSetProp(ThisView+".n_kart_p","Field","Updatable",.T.) DBSetProp(ThisView+".date_reg","Field","DataType","D") DBSetProp(ThisView+".date_reg","Field","UpdateName","dbo.rasp.date_reg") DBSetProp(ThisView+".date_reg","Field","KeyField",.F.) DBSetProp(ThisView+".date_reg","Field","Updatable",.T.) DBSetProp(ThisView+".isp","Field","DataType","C(80)") DBSetProp(ThisView+".isp","Field","UpdateName","dbo.rasp.isp") DBSetProp(ThisView+".isp","Field","KeyField",.F.) DBSetProp(ThisView+".isp","Field","Updatable",.T.) DBSetProp(ThisView+".type_doc","Field","DataType","C(59)") DBSetProp(ThisView+".type_doc","Field","UpdateName","dbo.rasp.type_doc") DBSetProp(ThisView+".type_doc","Field","KeyField",.F.) DBSetProp(ThisView+".type_doc","Field","Updatable",.T.) DBSetProp(ThisView+".tema_doc","Field","DataType","C(32)") DBSetProp(ThisView+".tema_doc","Field","UpdateName","dbo.rasp.tema_doc") DBSetProp(ThisView+".tema_doc","Field","KeyField",.F.) DBSetProp(ThisView+".tema_doc","Field","Updatable",.T.) DBSetProp(ThisView+".contests","Field","DataType","M") DBSetProp(ThisView+".contests","Field","UpdateName","dbo.rasp.contests") DBSetProp(ThisView+".contests","Field","KeyField",.F.) DBSetProp(ThisView+".contests","Field","Updatable",.T.) DBSetProp(ThisView+".visa","Field","DataType","C(25)") DBSetProp(ThisView+".visa","Field","UpdateName","dbo.rasp.visa") DBSetProp(ThisView+".visa","Field","KeyField",.F.) DBSetProp(ThisView+".visa","Field","Updatable",.T.) DBSetProp(ThisView+".rassilka","Field","DataType","C(150)") DBSetProp(ThisView+".rassilka","Field","UpdateName","dbo.rasp.rassilka") DBSetProp(ThisView+".rassilka","Field","KeyField",.F.) DBSetProp(ThisView+".rassilka","Field","Updatable",.T.) DBSetProp(ThisView+".data_ot_p","Field","DataType","D") DBSetProp(ThisView+".data_ot_p","Field","UpdateName","dbo.rasp.data_ot_p") DBSetProp(ThisView+".data_ot_p","Field","KeyField",.F.) DBSetProp(ThisView+".data_ot_p","Field","Updatable",.T.) DBSetProp(ThisView+".data_ot_r","Field","DataType","D") DBSetProp(ThisView+".data_ot_r","Field","UpdateName","dbo.rasp.data_ot_r") DBSetProp(ThisView+".data_ot_r","Field","KeyField",.F.) DBSetProp(ThisView+".data_ot_r","Field","Updatable",.T.) DBSetProp(ThisView+".n_kart_r","Field","DataType","C(7)") DBSetProp(ThisView+".n_kart_r","Field","UpdateName","dbo.rasp.n_kart_r") DBSetProp(ThisView+".n_kart_r","Field","KeyField",.F.) DBSetProp(ThisView+".n_kart_r","Field","Updatable",.T.) DBSetProp(ThisView+".rez","Field","DataType","M") DBSetProp(ThisView+".rez","Field","UpdateName","dbo.rasp.rez") DBSetProp(ThisView+".rez","Field","KeyField",.F.) DBSetProp(ThisView+".rez","Field","Updatable",.T.) DBSetProp(ThisView+".dsk","Field","DataType","D") DBSetProp(ThisView+".dsk","Field","UpdateName","dbo.rasp.dsk") DBSetProp(ThisView+".dsk","Field","KeyField",.F.) DBSetProp(ThisView+".dsk","Field","Updatable",.T.) DBSetProp(ThisView+".tip","Field","DataType","C(3)") DBSetProp(ThisView+".tip","Field","UpdateName","dbo.rasp.tip") DBSetProp(ThisView+".tip","Field","KeyField",.F.) DBSetProp(ThisView+".tip","Field","Updatable",.T.) поменять сортировку можно через order, но в процессе работы (когда он открыт) я не нашел метода смены сортировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2006, 15:18 |
|
||
|
order
|
|||
|---|---|---|---|
|
#18+
фокссоздал remote view (ODBC) ... как потом поменять сортировку? ... sele MyView index on ... tag ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2006, 15:54 |
|
||
|
order
|
|||
|---|---|---|---|
|
#18+
фокспоменять сортировку можно через order, но в процессе работы (когда он открыт) я не нашел метода смены сортировки. А говоришь, пользовался параметрами... Если сделать параметризированный ORDER BY (любым способом), то надо просто перед Requery() подсунуть другое значение параметра: MyPar = 2 Requery("MyView") Однако такой способ имеет тот недостаток, что у тебя сортировка всегда будет только по возрастанию. Нельзя будет менять значение DESC или ASC. Если же проиндексировать View, то это не проблема. SET ORDER TO 1 ASC && соритровака по возрастанию SET ORDER TO 1 DESC && соритровака по убыванию Оптимальный вариант - это проиндексировать View по всем отображаемым в Grid полям сразу после его открытия (или после наполнения). Кстати, никаких глюков при обновлении не заметил. Индекс корректно обновляется после Requery(). Все изменения сделанные другим пользователем также видны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 14:01 |
|
||
|
|

start [/forum/topic.php?fid=41&gotonew=1&tid=1592662]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
185ms |
get topic data: |
10ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 542ms |

| 0 / 0 |
