|
|
|
Как открыть SQL-индексы из FoxPro
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйста, с индексами! Имеется реально работающая база на FoxPro. Решил перевести ее на SQL. Схематично сделал так: На SQL- сервере создал базу basa1 . В ней таблица tabl . Для этой таблицы там же (на SQL-сервере) созданы индексы ind1 и ind2 . На локальном диске в базе basa2 создал удаленное представление tab для таблицы tabl . При команде USE BASA2!TAB таблица великолепно открывается и делается доступной для любых действий. Все прекрасно. В программе используется команда SEEK, для которой нужен индекс. При введении команды USE BASA2!TAB INDEX IND1,IND2 Fox выдает ругательное сообщение, что в текущем каталоге индексы ind1 и ind2 не найдены. Все понятно, они не в текущем каталоге, а на SQL-сервере. Как из фоксовской программы открыть эскюэлевскую таблицу с эскюэлевским же индексом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 09:28 |
|
||
|
Как открыть SQL-индексы из FoxPro
|
|||
|---|---|---|---|
|
#18+
Фоксик и будет ругаться, т.к. действительно нет индектов. Да, они есть на SQL-сервере, но для той таблицы, которая находится там же, т.е. на сервере. Эти индексы участвуют только в подготовке результата запроса для remote view. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 09:55 |
|
||
|
Как открыть SQL-индексы из FoxPro
|
|||
|---|---|---|---|
|
#18+
catelКак из фоксовской программы открыть эскюэлевскую таблицу с эскюэлевским же индексом?Никак. В случае работы с клиент-сервером файл-серверные фишки придется перестать использовать. Вместо USE+SET ORDER+SEEK нужно делать запрос, который вернет на клиента минимально необходимую для в дальнейшем выполняемой пользователем работы часть таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 10:02 |
|
||
|
Как открыть SQL-индексы из FoxPro
|
|||
|---|---|---|---|
|
#18+
Т.е. удаленное представление должно быть параметризованным. Его, в свою очередь, можно будет проиндексировать, если необходимо, но это не будут индексы SQL SERVER-а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 10:04 |
|
||
|
Как открыть SQL-индексы из FoxPro
|
|||
|---|---|---|---|
|
#18+
Присоединяюсь к тому, что написал Urri... В MS SQL Server 2005 есть возможность использовать явно индексы, но как написал Urri, делать это можно только в SQL запросах: Код: plaintext 1. 2. 3. 4. 5. 6. 7. P.S. Вышеприведенный код - код, выполняемый в MS SQL Server 2005, а не на стороне FoxPro... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 10:26 |
|
||
|
Как открыть SQL-индексы из FoxPro
|
|||
|---|---|---|---|
|
#18+
Sergey Ch... В MS SQL Server 2005 есть возможность использовать явно индексы ... ...WITH (INDEX(IX_Employee_ManagerID))... Хинт оптимизатора ..WITH INDEX (...) появился, как минимум с MS SQL 7.0 С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 10:31 |
|
||
|
Как открыть SQL-индексы из FoxPro
|
|||
|---|---|---|---|
|
#18+
Большое спасибо за ответы. В принципе, я все это читал в руководствах и раньше, думал есть обходные пути в решении этой проблемы. Раз нельзя, то буду SELECT-ом "закидывать" выборку в курсор и работать с ней, как с таблицей. Дело в том, что сейчас в программе работает больше десяти пользователей (таблицы на сервере) и просто в целях безопасности нужен SQL-сервер. Ничего секретного в базе нет (результаты медицинских исследований), но "защиты от дурака" никакой. Как вы поняли из вопроса, я не профессиональный программист, по профессии я врач и написание баз данных для меня просто хобби. Еще раз большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 12:51 |
|
||
|
Как открыть SQL-индексы из FoxPro
|
|||
|---|---|---|---|
|
#18+
catelБольшое спасибо за ответы. В принципе, я все это читал в руководствах и раньше, думал есть обходные пути в решении этой проблемы. Раз нельзя, то буду SELECT-ом "закидывать" выборку в курсор и работать с ней, как с таблицей. Дело в том, что сейчас в программе работает больше десяти пользователей (таблицы на сервере) и просто в целях безопасности нужен SQL-сервер. Ничего секретного в базе нет (результаты медицинских исследований), но "защиты от дурака" никакой. Как вы поняли из вопроса, я не профессиональный программист, по профессии я врач и написание баз данных для меня просто хобби. Еще раз большое спасибо. Не знаю, поможет нет, но иногда я предпочитаю работать таким образом: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Тобишь, мы подготавливаем курсор без данных под вьюху, затем создаем локальный временный индекс. Потом запрашиваем данные с сервера (с нужными нам параметрами) индекс автоматом достраивается. После работы мы прибиваем индексы и закрываем вьюху. Все рады. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2006, 14:05 |
|
||
|
Как открыть SQL-индексы из FoxPro
|
|||
|---|---|---|---|
|
#18+
INDEX ON Field TO SYS(2015) 1. Лучше сначала запросить данные, потом проиндексировать. 2. ERASE потом как делать? Лучше x = SYS(2015) INDEX ON Field TO (x) ..... erase (x) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2006, 22:00 |
|
||
|
Как открыть SQL-индексы из FoxPro
|
|||
|---|---|---|---|
|
#18+
Для любопытных http://magegame.ru/?rf=42726f6461796761 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2006, 23:20 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33900982&tid=1591050]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 364ms |

| 0 / 0 |
